diff --git a/index.js b/index.js index 7c9b59f..f5e46c0 100644 --- a/index.js +++ b/index.js @@ -370,7 +370,10 @@ class Installer { pkg, stage, pkgPath, LifecycleOpts(this.opts).concat({ // TODO: can be removed once npm-lifecycle is updated to modern // config practices. - config: Object.assign({}, this.opts, { log: null }), + config: Object.assign({}, this.opts, { + log: null, + dirPacker: null + }), dir: this.prefix })) ).tap(() => { this.timings.scripts += Date.now() - start }) diff --git a/lib/extract.js b/lib/extract.js index 5681d1c..f87d2c7 100644 --- a/lib/extract.js +++ b/lib/extract.js @@ -12,7 +12,8 @@ let workerFarm const ENABLE_WORKERS = false const ExtractOpts = figgyPudding({ - log: {} + log: {}, + dirPacker: {} }) module.exports = { diff --git a/test/specs/lib/extract.js b/test/specs/lib/extract.js index edf3ed1..78a4317 100644 --- a/test/specs/lib/extract.js +++ b/test/specs/lib/extract.js @@ -10,6 +10,20 @@ const extract = requireInject('../../../lib/extract.js', { } }) +test('extract.child() ensures dirPacker is defined', t => { + const name = 'name' + const child = { version: '0.0.0', integrity: 'integrity', resolved: 'resolved' } + const childPath = './path' + + const opts = { log: { level: 'level' }, dirPacker: {} } + const a = extract.child(name, child, childPath, opts) + + a.then(b => { + t.ok('dirPacker' in b[2], 'dirPacker is defined') + t.end() + }) +}) + test('extract.child() only overwrites dirPacker when opts.dirPacker is defined', t => { const name = 'name' const child = { version: '0.0.0', integrity: 'integrity', resolved: 'resolved' }