aboutsummaryrefslogtreecommitdiffstats
path: root/gulpfile.js
diff options
context:
space:
mode:
Diffstat (limited to 'gulpfile.js')
-rw-r--r--gulpfile.js51
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