diff options
Diffstat (limited to 'gulpfile.js')
-rw-r--r-- | gulpfile.js | 51 |
1 files changed, 28 insertions, 23 deletions
diff --git a/gulpfile.js b/gulpfile.js index 1eb0a974b..4f0da9d60 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,5 +1,6 @@ const watchify = require('watchify') const browserify = require('browserify') +const envify = require('envify/custom') const disc = require('disc') const gulp = require('gulp') const source = require('vinyl-source-stream') @@ -28,8 +29,14 @@ const uglify = require('gulp-uglify-es').default const babel = require('gulp-babel') const debug = require('gulp-debug') const pify = require('pify') +const gulpMultiProcess = require('gulp-multi-process') const endOfStream = pify(require('end-of-stream')) +function gulpParallel (...args) { + return function spawnGulpChildProcess(cb) { + return gulpMultiProcess(args, cb, true) + } +} const browserPlatforms = [ 'firefox', @@ -207,9 +214,11 @@ gulp.task('dev:copy', // lint js +const lintTargets = ['app/**/*.json', 'app/**/*.js', '!app/scripts/vendor/**/*.js', 'ui/**/*.js', 'old-ui/**/*.js', 'mascara/src/*.js', 'mascara/server/*.js', '!node_modules/**', '!dist/firefox/**', '!docs/**', '!app/scripts/chromereload.js', '!mascara/test/jquery-3.1.0.min.js'] + gulp.task('lint', function () { // Ignoring node_modules, dist/firefox, and docs folders: - return gulp.src(['app/**/*.js', '!app/scripts/vendor/**/*.js', 'ui/**/*.js', 'mascara/src/*.js', 'mascara/server/*.js', '!node_modules/**', '!dist/firefox/**', '!docs/**', '!app/scripts/chromereload.js', '!mascara/test/jquery-3.1.0.min.js']) + return gulp.src(lintTargets) .pipe(eslint(fs.readFileSync(path.join(__dirname, '.eslintrc')))) // eslint.format() outputs the lint results to the console. // Alternatively use eslint.formatEach() (see Docs). @@ -220,7 +229,7 @@ gulp.task('lint', function () { }); gulp.task('lint:fix', function () { - return gulp.src(['app/**/*.js', 'ui/**/*.js', 'mascara/src/*.js', 'mascara/server/*.js', '!node_modules/**', '!dist/firefox/**', '!docs/**', '!app/scripts/chromereload.js', '!mascara/test/jquery-3.1.0.min.js']) + return gulp.src(lintTargets) .pipe(eslint(Object.assign(fs.readFileSync(path.join(__dirname, '.eslintrc')), {fix: true}))) .pipe(eslint.format()) .pipe(eslint.failAfterError()) @@ -369,12 +378,6 @@ 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 for production -gulp.task('apply-prod-environment', function(done) { - process.env.NODE_ENV = 'production' - done() -}); - // high level tasks gulp.task('dev', @@ -418,7 +421,7 @@ gulp.task('build', gulp.series( 'clean', 'build:scss', - gulp.parallel( + gulpParallel( 'build:extension:js', 'build:mascara:js', 'copy' @@ -450,7 +453,6 @@ gulp.task('build:mascara', gulp.task('dist', gulp.series( - 'apply-prod-environment', 'build', 'zip' ) @@ -476,6 +478,22 @@ function generateBundler(opts, performBundle) { let bundler = browserify(browserifyOpts) + // inject variables into bundle + bundler.transform(envify({ + METAMASK_DEBUG: opts.devMode, + NODE_ENV: opts.devMode ? 'development' : 'production', + })) + + // Minification + if (opts.minifyBuild) { + bundler.transform('uglifyify', { + global: true, + mangle: { + reserved: [ 'MetamaskInpageProvider' ] + }, + }) + } + if (opts.watch) { bundler = watchify(bundler) // on any file update, re-runs the bundler @@ -539,12 +557,9 @@ function bundleTask(opts) { buildStream = buildStream // convert bundle stream to gulp vinyl stream .pipe(source(opts.filename)) - // inject variables into bundle - .pipe(replace('\'GULP_METAMASK_DEBUG\'', opts.devMode)) // buffer file contents (?) .pipe(buffer()) - // Initialize Source Maps if (opts.buildSourceMaps) { buildStream = buildStream @@ -552,16 +567,6 @@ function bundleTask(opts) { .pipe(sourcemaps.init({ loadMaps: true })) } - // Minification - if (opts.minifyBuild) { - buildStream = buildStream - .pipe(uglify({ - mangle: { - reserved: [ 'MetamaskInpageProvider' ] - }, - })) - } - // Finalize Source Maps (writes .map file) if (opts.buildSourceMaps) { buildStream = buildStream |