@@ -2055,6 +2055,48 @@ function parseGraphRecursive (key, deps) {
20552055 return { name, version, workspace, peer, dependencies }
20562056}
20572057
2058+ tap . test ( 'omit dev dependencies with linked strategy' , async t => {
2059+ const graph = {
2060+ registry : [
2061+ { name : 'which' , version : '1.0.0' , dependencies : { isexe : '^1.0.0' } } ,
2062+ { name : 'isexe' , version : '1.0.0' } ,
2063+ { name : 'eslint' , version : '1.0.0' } ,
2064+ ] ,
2065+ root : {
2066+ name : 'myapp' ,
2067+ version : '1.0.0' ,
2068+ dependencies : { which : '1.0.0' } ,
2069+ devDependencies : { eslint : '1.0.0' } ,
2070+ } ,
2071+ workspaces : [
2072+ {
2073+ name : 'mylib' ,
2074+ version : '1.0.0' ,
2075+ dependencies : { isexe : '1.0.0' } ,
2076+ devDependencies : { eslint : '1.0.0' } ,
2077+ } ,
2078+ ] ,
2079+ }
2080+
2081+ const { dir, registry } = await getRepo ( graph )
2082+ const cache = fs . mkdtempSync ( `${ getTempDir ( ) } /test-` )
2083+ const arborist = new Arborist ( {
2084+ path : dir ,
2085+ registry,
2086+ packumentCache : new Map ( ) ,
2087+ cache,
2088+ omit : [ 'dev' ] ,
2089+ } )
2090+ await arborist . reify ( { installStrategy : 'linked' } )
2091+
2092+ const storeDir = path . join ( dir , 'node_modules' , '.store' )
2093+ const storeEntries = fs . readdirSync ( storeDir )
2094+
2095+ t . ok ( storeEntries . some ( e => e . startsWith ( 'which@' ) ) , 'prod dep which is in store' )
2096+ t . ok ( storeEntries . some ( e => e . startsWith ( 'isexe@' ) ) , 'prod dep isexe is in store' )
2097+ t . notOk ( storeEntries . some ( e => e . startsWith ( 'eslint@' ) ) , 'dev dep eslint is not in store' )
2098+ } )
2099+
20582100/*
20592101 * TO TEST:
20602102 * --------------------------------------
0 commit comments