build(npm): short-circuit npm install if node_modules are healthy

Closes #8627
This commit is contained in:
Pawel Kozlowski 2016-05-13 01:01:33 +02:00
parent 4ddf5536b4
commit 05266241af
4 changed files with 3 additions and 18 deletions

View File

@ -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": {

View File

@ -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'

View File

@ -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);

View File

@ -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);
}
} }
} }