From 3f222854e439e0cf94242e32e54d9c36126d94d5 Mon Sep 17 00:00:00 2001 From: sdtsui Date: Sun, 6 Aug 2017 12:09:17 -0700 Subject: Migrate from css to scss + autoprefixer --- gulpfile.js | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'gulpfile.js') diff --git a/gulpfile.js b/gulpfile.js index 53de7a7d9..13760a7d0 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 sass = require('gulp-sass') +var autoprefixer = require('gulp-autoprefixer') var disableDebugTools = gutil.env.disableDebugTools var debug = gutil.env.debug @@ -189,6 +191,28 @@ jsFiles.forEach((jsFile) => { gulp.task('dev:js', gulp.parallel(...jsDevStrings)) gulp.task('build:js', gulp.parallel(...jsBuildStrings)) +gulp.task('build:scss', function () { + return gulp.src('ui/app/css/index.scss') + .pipe(sourcemaps.init()) + .pipe(sass().on('error', sass.logError)) + .pipe(sourcemaps.write()) + .pipe(autoprefixer()) + .pipe(gulp.dest('ui/app/css/output')); +}); +gulp.task('watch:scss', function () { + return gulp.src('ui/app/css/index.scss') + .pipe(watch('ui/app/css/**/*.scss')) + .pipe(sourcemaps.init()) + .pipe(sass().on('error', sass.logError)) + .pipe(sourcemaps.write()) + .pipe(autoprefixer()) + .pipe(gulp.dest('ui/app/css/output')); +}); + +gulp.task('copy:watch', function(){ + gulp.watch(['./app/{_locales,images}/*', './app/scripts/chromereload.js', './app/*.{html,json}'], gulp.series('copy')) +}) + // disc bundle analyzer tasks @@ -215,9 +239,9 @@ gulp.task('zip', gulp.parallel('zip:chrome', 'zip:firefox', 'zip:edge', 'zip:ope // high level tasks -gulp.task('dev', gulp.series('dev:js', 'copy', gulp.parallel('copy:watch', 'dev:reload'))) +gulp.task('dev', gulp.series('build:scss', 'dev:js', 'copy', gulp.parallel('watch:scss', 'copy:watch', 'dev:reload'))) -gulp.task('build', gulp.series('clean', gulp.parallel('build:js', 'copy'))) +gulp.task('build', gulp.series('clean', 'build:scss', gulp.parallel('build:js', 'copy'))) gulp.task('dist', gulp.series('build', 'zip')) // task generators -- cgit From bc73cbdbfeee2723415d68c69bd8cd3b5e4a7402 Mon Sep 17 00:00:00 2001 From: sdtsui Date: Sun, 6 Aug 2017 12:29:26 -0700 Subject: Cleanup css and gulpfile post-migration --- gulpfile.js | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) (limited to 'gulpfile.js') diff --git a/gulpfile.js b/gulpfile.js index 13760a7d0..126acccb8 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -179,25 +179,15 @@ const jsFiles = [ 'popup', ] -// bundle tasks - -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` })) -}) +// scss compilation and autoprefixing tasks -gulp.task('dev:js', gulp.parallel(...jsDevStrings)) -gulp.task('build:js', gulp.parallel(...jsBuildStrings)) gulp.task('build:scss', function () { return gulp.src('ui/app/css/index.scss') .pipe(sourcemaps.init()) .pipe(sass().on('error', sass.logError)) .pipe(sourcemaps.write()) .pipe(autoprefixer()) - .pipe(gulp.dest('ui/app/css/output')); + .pipe(gulp.dest('ui/app/css/output')) }); gulp.task('watch:scss', function () { return gulp.src('ui/app/css/index.scss') @@ -206,13 +196,21 @@ gulp.task('watch:scss', function () { .pipe(sass().on('error', sass.logError)) .pipe(sourcemaps.write()) .pipe(autoprefixer()) - .pipe(gulp.dest('ui/app/css/output')); + .pipe(gulp.dest('ui/app/css/output')) }); -gulp.task('copy:watch', function(){ - gulp.watch(['./app/{_locales,images}/*', './app/scripts/chromereload.js', './app/*.{html,json}'], gulp.series('copy')) +// bundle tasks + +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', gulp.parallel(...jsDevStrings)) +gulp.task('build:js', gulp.parallel(...jsBuildStrings)) // disc bundle analyzer tasks -- cgit From bd9549bddc7257c1fc01a68178aa8973db29a3a1 Mon Sep 17 00:00:00 2001 From: sdtsui Date: Sun, 6 Aug 2017 13:43:25 -0700 Subject: Use 4.x pattern for watching scss --- gulpfile.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gulpfile.js') diff --git a/gulpfile.js b/gulpfile.js index 126acccb8..9604c4f6d 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -148,6 +148,9 @@ gulp.task('copy', gulp.series(gulp.parallel(...copyStrings), 'manifest:productio gulp.task('copy:watch', function(){ gulp.watch(['./app/{_locales,images}/*', './app/scripts/chromereload.js', './app/*.{html,json}'], gulp.series('copy')) }) +gulp.task('watch:style', function(){ + gulp.watch(['ui/app/css/**/*.scss'], gulp.series(['build:scss'])) +}); // lint js @@ -191,7 +194,7 @@ gulp.task('build:scss', function () { }); gulp.task('watch:scss', function () { return gulp.src('ui/app/css/index.scss') - .pipe(watch('ui/app/css/**/*.scss')) + // .pipe(watch('ui/app/css/**/*.scss')) .pipe(sourcemaps.init()) .pipe(sass().on('error', sass.logError)) .pipe(sourcemaps.write()) @@ -237,7 +240,7 @@ gulp.task('zip', gulp.parallel('zip:chrome', 'zip:firefox', 'zip:edge', 'zip:ope // high level tasks -gulp.task('dev', gulp.series('build:scss', 'dev:js', 'copy', gulp.parallel('watch:scss', 'copy:watch', 'dev:reload'))) +gulp.task('dev', gulp.series('build:scss', 'dev:js', 'copy', gulp.parallel('watch:style', 'copy:watch', 'dev:reload'))) gulp.task('build', gulp.series('clean', 'build:scss', gulp.parallel('build:js', 'copy'))) gulp.task('dist', gulp.series('build', 'zip')) -- cgit From aeaf917cbb6b07e0a2782be3c53a40f57027b18a Mon Sep 17 00:00:00 2001 From: sdtsui Date: Sun, 6 Aug 2017 13:44:50 -0700 Subject: Clean up gulpfile --- gulpfile.js | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) (limited to 'gulpfile.js') diff --git a/gulpfile.js b/gulpfile.js index 9604c4f6d..8e008377d 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -148,9 +148,6 @@ gulp.task('copy', gulp.series(gulp.parallel(...copyStrings), 'manifest:productio gulp.task('copy:watch', function(){ gulp.watch(['./app/{_locales,images}/*', './app/scripts/chromereload.js', './app/*.{html,json}'], gulp.series('copy')) }) -gulp.task('watch:style', function(){ - gulp.watch(['ui/app/css/**/*.scss'], gulp.series(['build:scss'])) -}); // lint js @@ -164,13 +161,7 @@ gulp.task('lint', function () { // To have the process exit with an error code (1) on // lint error, return the stream and pipe to failAfterError last. .pipe(eslint.failAfterError()) -}); - -/* -gulp.task('default', ['lint'], function () { - // This will only run if the lint task is successful... -}); -*/ +}) // build js @@ -191,16 +182,10 @@ gulp.task('build:scss', function () { .pipe(sourcemaps.write()) .pipe(autoprefixer()) .pipe(gulp.dest('ui/app/css/output')) -}); -gulp.task('watch:scss', function () { - return gulp.src('ui/app/css/index.scss') - // .pipe(watch('ui/app/css/**/*.scss')) - .pipe(sourcemaps.init()) - .pipe(sass().on('error', sass.logError)) - .pipe(sourcemaps.write()) - .pipe(autoprefixer()) - .pipe(gulp.dest('ui/app/css/output')) -}); +}) +gulp.task('watch:scss', function(){ + gulp.watch(['ui/app/css/**/*.scss'], gulp.series(['build:scss'])) +}) // bundle tasks @@ -240,7 +225,7 @@ gulp.task('zip', gulp.parallel('zip:chrome', 'zip:firefox', 'zip:edge', 'zip:ope // high level tasks -gulp.task('dev', gulp.series('build:scss', 'dev:js', 'copy', gulp.parallel('watch:style', 'copy:watch', 'dev:reload'))) +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')) @@ -270,7 +255,7 @@ function zipTask(target) { return () => { return gulp.src(`dist/${target}/**`) .pipe(zip(`metamask-${target}-${manifest.version}.zip`)) - .pipe(gulp.dest('builds')); + .pipe(gulp.dest('builds')) } } -- cgit From b8aa529d29434978f511e67211d8a5ff9e2f553c Mon Sep 17 00:00:00 2001 From: sdtsui Date: Mon, 14 Aug 2017 10:03:16 +0200 Subject: [WIP] Add packages and tasks for linting scss --- gulpfile.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'gulpfile.js') diff --git a/gulpfile.js b/gulpfile.js index a8333e950..f8ed456b0 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -21,10 +21,14 @@ var replace = require('gulp-replace') var mkdirp = require('mkdirp') var sass = require('gulp-sass') var autoprefixer = require('gulp-autoprefixer') +var gulpStylelint = require('gulp-stylelint') +var stylefmt = require('gulp-stylefmt') + var disableDebugTools = gutil.env.disableDebugTools var debug = gutil.env.debug + // browser reload gulp.task('dev:reload', function() { @@ -182,10 +186,26 @@ gulp.task('build:scss', function () { .pipe(autoprefixer()) .pipe(gulp.dest('ui/app/css/output')) }) -gulp.task('watch:scss', function(){ +gulp.task('watch:scss', function() { gulp.watch(['ui/app/css/**/*.scss'], gulp.series(['build:scss'])) }) +gulp.task('lint-scss', function() { + return gulp + .src('ui/app/css/itcss/**/*.scss') + .pipe(gulpStylelint({ + reporters: [ + {formatter: 'string', console: true} + ] + })); +}); + +gulp.task('fmt-scss', function () { + return gulp.src('ui/app/css/itcss/**/*.scss') + .pipe(stylefmt()) + .pipe(gulp.dest('ui/app/css/itcss')); +}); + // bundle tasks var jsDevStrings = jsFiles.map(jsFile => `dev:js:${jsFile}`) -- cgit From 5452a26b36a84f8fc5b19197d7b58eaed847ae31 Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 29 Aug 2017 13:09:47 -0230 Subject: Fixes lint errors and adds stylelint-config-standard to package.json --- gulpfile.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gulpfile.js') diff --git a/gulpfile.js b/gulpfile.js index f8ed456b0..46fe2050d 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -196,7 +196,8 @@ gulp.task('lint-scss', function() { .pipe(gulpStylelint({ reporters: [ {formatter: 'string', console: true} - ] + ], + fix: true, })); }); -- cgit From ec6c3c33bdbe2d90dc71649d0cc5fb3c07d96af7 Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 5 Dec 2017 13:11:59 -0330 Subject: Merge branch 'master' into NewUI-flat-merge-with-master --- gulpfile.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'gulpfile.js') diff --git a/gulpfile.js b/gulpfile.js index 620b9b663..195e3f3ca 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -126,11 +126,17 @@ gulp.task('manifest:production', function() { './dist/firefox/manifest.json', './dist/chrome/manifest.json', './dist/edge/manifest.json', + './dist/opera/manifest.json', ],{base: './dist/'}) + + // Exclude chromereload script in production: .pipe(gulpif(!debug,jsoneditor(function(json) { - json.background.scripts = ["scripts/background.js"] + json.background.scripts = json.background.scripts.filter((script) => { + return !script.includes('chromereload') + }) return json }))) + .pipe(gulp.dest('./dist/', { overwrite: true })) }) -- cgit 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 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