Skip to content

Commit

Permalink
feat(autoinstall): Add disabling of autoinstall globally via environm…
Browse files Browse the repository at this point in the history
…ent variable

-Closes #2130.
  • Loading branch information
cacheflow committed Oct 16, 2018
1 parent 75310e1 commit b3daf7f
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 1 deletion.
3 changes: 2 additions & 1 deletion packages/core/parcel-bundler/src/Bundler.js
Expand Up @@ -135,7 +135,8 @@ class Bundler extends EventEmitter {
detailedReport: options.detailedReport || false,
global: options.global,
autoinstall:
typeof options.autoinstall === 'boolean'
typeof options.autoinstall === 'boolean' &&
process.env.PARCEL_AUTOINSTALL !== 'false'
? options.autoinstall
: !isProduction,
scopeHoist: scopeHoist,
Expand Down
@@ -0,0 +1 @@
PARCEL_AUTOINSTALL=false
@@ -0,0 +1,4 @@
const _ = require('lodash');
module.exports = function() {
return 'hello world';
}
@@ -0,0 +1,4 @@
{
"name": "dont-autoinstall-if-env-var-is-false",
"dependencies": {}
}
21 changes: 21 additions & 0 deletions packages/core/parcel-bundler/test/javascript.js
Expand Up @@ -42,6 +42,27 @@ describe('javascript', function() {
assert.equal(output.default(), 3);
});

it('should not autoinstall if PARCEL_AUTOINSTALL is set to false', async function() {
const inputDir = path.join(
__dirname,
'/integration/dont-autoinstall-if-env-var-is-false/'
);
try {
let a = await bundle(path.resolve(inputDir, './index.js'));
await run(a);
} catch (e) {
let pkg = await fs.readFile(
path.resolve(inputDir, 'package.json'),
'utf8'
);
const pkgName = 'lodash';
pkg = JSON.parse(pkg);
console.log('pkg is ', pkg);
assert(pkgName in pkg.dependencies === false);
assert(e.message.includes("Cannot resolve dependency 'lodash'"));
}
});

it('should auto install babel-core v6', async function() {
let originalPkg = await fs.readFile(
__dirname + '/integration/babel-6-autoinstall/package.json'
Expand Down

0 comments on commit b3daf7f

Please sign in to comment.