build(npm): short-circuit npm install if node_modules are healthy
Closes #8627
This commit is contained in:
parent
4ddf5536b4
commit
05266241af
|
@ -15,7 +15,6 @@
|
||||||
"url": "https://github.com/angular/angular.git"
|
"url": "https://github.com/angular/angular.git"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"preinstall": "node tools/npm/check-node-modules",
|
|
||||||
"postinstall": "node tools/npm/copy-npm-shrinkwrap"
|
"postinstall": "node tools/npm/copy-npm-shrinkwrap"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
@ -27,13 +27,8 @@ echo 'travis_fold:end:install-npm'
|
||||||
|
|
||||||
|
|
||||||
# Install all npm dependencies according to shrinkwrap.json
|
# Install all npm dependencies according to shrinkwrap.json
|
||||||
# note: package.json contain preinstall and postintall hooks that can short-circuit
|
|
||||||
# the installation if node_modules is up to date
|
|
||||||
echo 'travis_fold:start:install.node_modules'
|
echo 'travis_fold:start:install.node_modules'
|
||||||
if [[ ${TRAVIS} ]]; then
|
node tools/npm/check-node-modules --purge || npm install
|
||||||
node tools/npm/check-node-modules --purge
|
|
||||||
fi
|
|
||||||
npm install
|
|
||||||
echo 'travis_fold:end:install.node_modules'
|
echo 'travis_fold:end:install.node_modules'
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,13 +4,9 @@ var checkNpm = require('./check-node-modules.js');
|
||||||
|
|
||||||
var purgeIfStale = (process.argv.indexOf('--purge') !== -1);
|
var purgeIfStale = (process.argv.indexOf('--purge') !== -1);
|
||||||
|
|
||||||
if (process.env.TRAVIS && !purgeIfStale) {
|
|
||||||
process.exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// check-node-modules will exit(1) if we don't need to install to short-circuit `npm install`
|
// check-node-modules will exit(1) if we don't need to install to short-circuit `npm install`
|
||||||
// see .travis.yml's `install` block to see the reason for this
|
// see .travis.yml's `install` block to see the reason for this
|
||||||
var nodeModulesOK = checkNpm(true, purgeIfStale);
|
var nodeModulesOK = checkNpm(true, purgeIfStale);
|
||||||
|
|
||||||
process.exit( nodeModulesOK || purgeIfStale ? 0 : 1);
|
process.exit( nodeModulesOK ? 0 : 1);
|
||||||
|
|
||||||
|
|
|
@ -18,12 +18,7 @@ function checkNodeModules(logOutput, purgeIfStale) {
|
||||||
if (logOutput) console.error(':-( npm dependencies are stale or in an in unknown state!');
|
if (logOutput) console.error(':-( npm dependencies are stale or in an in unknown state!');
|
||||||
if (purgeIfStale) {
|
if (purgeIfStale) {
|
||||||
if (logOutput) console.log(' purging...');
|
if (logOutput) console.log(' purging...');
|
||||||
|
_deleteDir(path.join(PROJECT_ROOT, 'node_modules'));
|
||||||
var nodeModulesPath = path.join(PROJECT_ROOT, 'node_modules');
|
|
||||||
|
|
||||||
if (fs.existsSync(nodeModulesPath)) {
|
|
||||||
_deleteDir(nodeModulesPath);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue