build(gulp): check node and npm version and log a warning if incompatible
Closes #1758
This commit is contained in:
parent
d717529e9a
commit
31cbec0857
33
gulpfile.js
33
gulpfile.js
|
@ -3,6 +3,7 @@
|
||||||
var autoprefixer = require('gulp-autoprefixer');
|
var autoprefixer = require('gulp-autoprefixer');
|
||||||
var del = require('del');
|
var del = require('del');
|
||||||
var format = require('gulp-clang-format');
|
var format = require('gulp-clang-format');
|
||||||
|
var exec = require('child_process').exec;
|
||||||
var fork = require('child_process').fork;
|
var fork = require('child_process').fork;
|
||||||
var gulp = require('gulp');
|
var gulp = require('gulp');
|
||||||
var gulpPlugins = require('gulp-load-plugins')();
|
var gulpPlugins = require('gulp-load-plugins')();
|
||||||
|
@ -13,6 +14,7 @@ var madge = require('madge');
|
||||||
var merge = require('merge');
|
var merge = require('merge');
|
||||||
var merge2 = require('merge2');
|
var merge2 = require('merge2');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
|
var semver = require('semver');
|
||||||
var watch = require('gulp-watch');
|
var watch = require('gulp-watch');
|
||||||
|
|
||||||
var clean = require('./tools/build/clean');
|
var clean = require('./tools/build/clean');
|
||||||
|
@ -49,8 +51,37 @@ var angularBuilder = {
|
||||||
cleanup: function() {}
|
cleanup: function() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Note: when DART_SDK is not found, all gulp tasks ending with `.dart` will be skipped.
|
(function checkNodeAndNpmVersions() {
|
||||||
|
var requiredNpmVersion = '>=2.9.0';
|
||||||
|
var requiredNodeVersion = '>=0.10.x'; // TODO: bump this to 0.12 once travis runs on 0.12
|
||||||
|
|
||||||
|
exec('npm --version', function(e, stdout) {
|
||||||
|
var foundNpmVersion = semver.clean(stdout);
|
||||||
|
var foundNodeVersion = process.version;
|
||||||
|
var issues = [];
|
||||||
|
|
||||||
|
|
||||||
|
if (!semver.satisfies(foundNodeVersion, requiredNodeVersion)) {
|
||||||
|
issues.push('You are running unsupported node version. Found: ' + foundNodeVersion +
|
||||||
|
' Expected: ' + requiredNodeVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!semver.satisfies(foundNpmVersion, requiredNpmVersion)) {
|
||||||
|
issues.push('You are running unsuported npm version. Found: ' + foundNpmVersion +
|
||||||
|
' Expected: ' + requiredNpmVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (issues.length) {
|
||||||
|
// TODO: in the future we should error, but let's just display the warning for a few days first
|
||||||
|
console.warn(Array(80).join('!'));
|
||||||
|
console.warn('Your environment is not in a good shape. Following issues were found:');
|
||||||
|
issues.forEach(function(issue) {console.warn(' - ' + issue)});
|
||||||
|
console.warn(Array(80).join('!'));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}())
|
||||||
|
|
||||||
|
// Note: when DART_SDK is not found, all gulp tasks ending with `.dart` will be skipped.
|
||||||
var DART_SDK = require('./tools/build/dartdetect')(gulp);
|
var DART_SDK = require('./tools/build/dartdetect')(gulp);
|
||||||
|
|
||||||
// -----------------------
|
// -----------------------
|
||||||
|
|
|
@ -8382,6 +8382,9 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"semver": {
|
||||||
|
"version": "4.3.4"
|
||||||
|
},
|
||||||
"sorted-object": {
|
"sorted-object": {
|
||||||
"version": "1.0.0"
|
"version": "1.0.0"
|
||||||
},
|
},
|
||||||
|
|
|
@ -12951,6 +12951,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"semver": {
|
||||||
|
"version": "4.3.4",
|
||||||
|
"from": "semver@*",
|
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.4.tgz"
|
||||||
|
},
|
||||||
"sorted-object": {
|
"sorted-object": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"from": "https://registry.npmjs.org/sorted-object/-/sorted-object-1.0.0.tgz",
|
"from": "https://registry.npmjs.org/sorted-object/-/sorted-object-1.0.0.tgz",
|
||||||
|
|
|
@ -100,6 +100,7 @@
|
||||||
"q": "^1.0.1",
|
"q": "^1.0.1",
|
||||||
"react": "^0.13.2",
|
"react": "^0.13.2",
|
||||||
"run-sequence": "^0.3.6",
|
"run-sequence": "^0.3.6",
|
||||||
|
"semver": "^4.3.4",
|
||||||
"sorted-object": "^1.0.0",
|
"sorted-object": "^1.0.0",
|
||||||
"source-map": "^0.3.0",
|
"source-map": "^0.3.0",
|
||||||
"sprintf-js": "1.0.*",
|
"sprintf-js": "1.0.*",
|
||||||
|
|
Loading…
Reference in New Issue