aboutsummaryrefslogtreecommitdiffstats
path: root/gulpfile.js
diff options
context:
space:
mode:
Diffstat (limited to 'gulpfile.js')
-rw-r--r--gulpfile.js72
1 files changed, 46 insertions, 26 deletions
diff --git a/gulpfile.js b/gulpfile.js
index 2c000f576..2b8627f14 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -27,19 +27,23 @@ var gulpStylelint = require('gulp-stylelint')
var stylefmt = require('gulp-stylefmt')
var uglify = require('gulp-uglify-es').default
var babel = require('gulp-babel')
+var debug = require('gulp-debug')
var disableDebugTools = gutil.env.disableDebugTools
-var debug = gutil.env.debug
+var debugMode = gutil.env.debug
-const commonPlatforms = [
- // browser extensions
+const browserPlatforms = [
'firefox',
'chrome',
'edge',
'opera',
+]
+const commonPlatforms = [
// browser webapp
'mascara',
+ // browser extensions
+ ...browserPlatforms
]
// browser reload
@@ -51,7 +55,7 @@ gulp.task('dev:reload', function() {
})
-// copy static
+// copy universal
gulp.task('copy:locales', copyTask({
source: './app/_locales/',
@@ -74,12 +78,22 @@ gulp.task('copy:reload', copyTask({
destinations: commonPlatforms.map(platform => `./dist/${platform}/scripts`),
pattern: '/chromereload.js',
}))
-gulp.task('copy:root', copyTask({
+
+// copy extension
+
+gulp.task('copy:manifest', copyTask({
+ source: './app/',
+ destinations: browserPlatforms.map(platform => `./dist/${platform}`),
+ pattern: '/*.json',
+}))
+gulp.task('copy:html', copyTask({
source: './app/',
- destinations: commonPlatforms.map(platform => `./dist/${platform}`),
- pattern: '/*',
+ destinations: browserPlatforms.map(platform => `./dist/${platform}`),
+ pattern: '/*.html',
}))
+// manifest tinkering
+
gulp.task('manifest:chrome', function() {
return gulp.src('./dist/chrome/manifest.json')
.pipe(jsoneditor(function(json) {
@@ -113,7 +127,7 @@ gulp.task('manifest:production', function() {
],{base: './dist/'})
// Exclude chromereload script in production:
- .pipe(gulpif(!debug,jsoneditor(function(json) {
+ .pipe(gulpif(!debugMode,jsoneditor(function(json) {
json.background.scripts = json.background.scripts.filter((script) => {
return !script.includes('chromereload')
})
@@ -123,21 +137,27 @@ gulp.task('manifest:production', function() {
.pipe(gulp.dest('./dist/', { overwrite: true }))
})
-const staticFiles = [
- 'locales',
- 'images',
- 'fonts',
- 'root'
+const copyTaskNames = [
+ 'copy:locales',
+ 'copy:images',
+ 'copy:fonts',
+ 'copy:manifest',
+ 'copy:html',
+ 'copy:contractImages',
]
-var copyStrings = staticFiles.map(staticFile => `copy:${staticFile}`)
-copyStrings.push('copy:contractImages')
-
-if (debug) {
- copyStrings.push('copy:reload')
+if (debugMode) {
+ copyTaskNames.push('copy:reload')
}
-gulp.task('copy', gulp.series(gulp.parallel(...copyStrings), 'manifest:production', 'manifest:chrome', 'manifest:opera'))
+gulp.task('copy',
+ gulp.series(
+ gulp.parallel(...copyTaskNames),
+ 'manifest:production',
+ 'manifest:chrome',
+ 'manifest:opera'
+ )
+)
gulp.task('copy:watch', function(){
gulp.watch(['./app/{_locales,images}/*', './app/scripts/chromereload.js', './app/*.{html,json}'], gulp.series('copy'))
})
@@ -245,7 +265,7 @@ function createTasksForBuildJsMascara({ taskPrefix, bundleTaskOpts }) {
// inpage must be built before all other scripts:
const rootDir = './mascara/src/'
const jsFiles = ['ui', 'proxy', 'background']
- const destinations = ['./dist/mascara/scripts']
+ const destinations = ['./dist/mascara']
createTasksForBuildJs({ rootDir, jsFiles, taskPrefix, bundleTaskOpts, destinations, buildPhase1: jsFiles })
}
@@ -342,11 +362,11 @@ function copyTask(opts){
return performCopy
function performCopy(){
- let stream = gulp.src(source + pattern, { base: source })
+ let stream = gulp.src(source + pattern, { base: source }).pipe(debug({ title: source }))
destinations.forEach(function(destination) {
stream = stream.pipe(gulp.dest(destination))
})
- stream.pipe(gulpif(debug,livereload()))
+ stream.pipe(gulpif(debugMode,livereload()))
return stream
}
@@ -365,7 +385,7 @@ function generateBundler(opts, performBundle) {
entries: [opts.filepath],
plugin: 'browserify-derequire',
debug: true,
- fullPaths: debug,
+ fullPaths: debugMode,
})
let bundler = browserify(browserifyOpts)
@@ -427,7 +447,7 @@ function bundleTask(opts) {
// convert bundle stream to gulp vinyl stream
.pipe(source(opts.filename))
// inject variables into bundle
- .pipe(replace('\'GULP_METAMASK_DEBUG\'', debug))
+ .pipe(replace('\'GULP_METAMASK_DEBUG\'', debugMode))
// buffer file contents (?)
.pipe(buffer())
// sourcemaps
@@ -438,7 +458,7 @@ function bundleTask(opts) {
mangle: { reserved: [ 'MetamaskInpageProvider' ] },
})))
// writes .map file
- .pipe(sourcemaps.write(debug ? './' : '../../sourcemaps'))
+ .pipe(sourcemaps.write(debugMode ? './' : '../../sourcemaps'))
// write completed bundles
opts.destinations.forEach((dest) => {
@@ -447,7 +467,7 @@ function bundleTask(opts) {
// finally, trigger live reload
buildStream = buildStream
- .pipe(gulpif(debug, livereload()))
+ .pipe(gulpif(debugMode, livereload()))
return buildStream