From 27ace69a7fb24b5ac4346f15f8397cf2e45f807d Mon Sep 17 00:00:00 2001 From: kumavis Date: Wed, 10 Jan 2018 13:54:29 -0800 Subject: build - add 'deps' step that records output of 'npm ls' into build --- gulpfile.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'gulpfile.js') diff --git a/gulpfile.js b/gulpfile.js index 293179892..4c36ff7d4 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -19,6 +19,8 @@ var manifest = require('./app/manifest.json') var gulpif = require('gulp-if') var replace = require('gulp-replace') var mkdirp = require('mkdirp') +var asyncEach = require('async/each') +var exec = require('child_process').exec var disableDebugTools = gutil.env.disableDebugTools var debug = gutil.env.debug @@ -153,6 +155,18 @@ gulp.task('copy:watch', function(){ gulp.watch(['./app/{_locales,images}/*', './app/scripts/chromereload.js', './app/*.{html,json}'], gulp.series('copy')) }) +// record deps + +gulp.task('deps', function (cb) { + exec('npm ls', (err, stdoutOutput, stderrOutput) => { + if (err) return cb(err) + const browsers = ['firefox','chrome','edge','opera'] + asyncEach(browsers, (target, done) => { + fs.writeFile(`./dist/${target}/deps.txt`, stdoutOutput, done) + }, cb) + }) +}) + // lint js gulp.task('lint', function () { @@ -234,7 +248,7 @@ gulp.task('zip', gulp.parallel('zip:chrome', 'zip:firefox', 'zip:edge', 'zip:ope gulp.task('dev', gulp.series('dev:js', 'copy', gulp.parallel('copy:watch', 'dev:reload'))) -gulp.task('build', gulp.series('clean', gulp.parallel('build:js', 'copy'))) +gulp.task('build', gulp.series('clean', gulp.parallel('build:js', 'copy', 'deps'))) gulp.task('dist', gulp.series('build', 'zip')) // task generators -- cgit v1.2.3 From 41057a76c567a80f98ff17e5d7a24c9500c11e4c Mon Sep 17 00:00:00 2001 From: Dan J Miller Date: Thu, 11 Jan 2018 22:45:22 -0330 Subject: [NewUI] Build mascara with uglification and gzipping. (#2735) * Adds uglification and gzipping. * Build mascara with uglification and gzipping. * Remove gzipping from extension build. --- gulpfile.js | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gulpfile.js') diff --git a/gulpfile.js b/gulpfile.js index 195e3f3ca..f61e15b69 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -23,6 +23,8 @@ var sass = require('gulp-sass') var autoprefixer = require('gulp-autoprefixer') var gulpStylelint = require('gulp-stylelint') var stylefmt = require('gulp-stylefmt') +var uglify = require('gulp-uglify') +var babel = require('gulp-babel') var disableDebugTools = gutil.env.disableDebugTools @@ -375,6 +377,11 @@ function bundleTask(opts) { // sourcemaps // loads map from browserify file .pipe(gulpif(debug, sourcemaps.init({ loadMaps: true }))) + // Minification + .pipe(babel({ + presets: ['env'] + })) + .pipe(uglify()) // writes .map file .pipe(gulpif(debug, sourcemaps.write('./'))) // write completed bundles -- cgit v1.2.3 From 77eb7b2db692cc40bf5f8e36c5e695e8f82c76ec Mon Sep 17 00:00:00 2001 From: Dan J Miller Date: Mon, 15 Jan 2018 23:30:07 -0330 Subject: [NewUI-flat] Fix gulp build (#2975) * Only run uglify when building for prod; set environment when building for prod; use gulp-uglify-es. * Revert change of dist script. --- gulpfile.js | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'gulpfile.js') diff --git a/gulpfile.js b/gulpfile.js index f61e15b69..d64eff025 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -23,7 +23,7 @@ var sass = require('gulp-sass') var autoprefixer = require('gulp-autoprefixer') var gulpStylelint = require('gulp-stylelint') var stylefmt = require('gulp-stylefmt') -var uglify = require('gulp-uglify') +var uglify = require('gulp-uglify-es').default var babel = require('gulp-babel') @@ -234,8 +234,18 @@ var jsDevStrings = jsFiles.map(jsFile => `dev:js:${jsFile}`) var jsBuildStrings = jsFiles.map(jsFile => `build:js:${jsFile}`) jsFiles.forEach((jsFile) => { - gulp.task(`dev:js:${jsFile}`, bundleTask({ watch: true, label: jsFile, filename: `${jsFile}.js` })) - gulp.task(`build:js:${jsFile}`, bundleTask({ watch: false, label: jsFile, filename: `${jsFile}.js` })) + gulp.task(`dev:js:${jsFile}`, bundleTask({ + watch: true, + label: jsFile, + filename: `${jsFile}.js`, + isBuild: false + })) + gulp.task(`build:js:${jsFile}`, bundleTask({ + watch: false, + label: jsFile, + filename: `${jsFile}.js`, + isBuild: true + })) }) // inpage must be built before all other scripts: @@ -269,12 +279,18 @@ gulp.task('zip:edge', zipTask('edge')) gulp.task('zip:opera', zipTask('opera')) gulp.task('zip', gulp.parallel('zip:chrome', 'zip:firefox', 'zip:edge', 'zip:opera')) +// set env var for production +gulp.task('apply-prod-environment', function(done) { + process.env.NODE_ENV = 'production' + done() +}); + // high level tasks gulp.task('dev', gulp.series('build:scss', 'dev:js', 'copy', gulp.parallel('watch:scss', 'copy:watch', 'dev:reload'))) gulp.task('build', gulp.series('clean', 'build:scss', gulp.parallel('build:js', 'copy'))) -gulp.task('dist', gulp.series('build', 'zip')) +gulp.task('dist', gulp.series('apply-prod-environment', 'build', 'zip')) // task generators @@ -367,7 +383,6 @@ function bundleTask(opts) { throw err } }) - // convert bundle stream to gulp vinyl stream .pipe(source(opts.filename)) // inject variables into bundle @@ -378,10 +393,7 @@ function bundleTask(opts) { // loads map from browserify file .pipe(gulpif(debug, sourcemaps.init({ loadMaps: true }))) // Minification - .pipe(babel({ - presets: ['env'] - })) - .pipe(uglify()) + .pipe(gulpif(opts.isBuild, uglify())) // writes .map file .pipe(gulpif(debug, sourcemaps.write('./'))) // write completed bundles -- cgit v1.2.3