|
|
@ -16,6 +16,10 @@ var eslint = require('gulp-eslint') |
|
|
|
var fs = require('fs') |
|
|
|
var fs = require('fs') |
|
|
|
var path = require('path') |
|
|
|
var path = require('path') |
|
|
|
var manifest = require('./app/manifest.json') |
|
|
|
var manifest = require('./app/manifest.json') |
|
|
|
|
|
|
|
var gulpif = require('gulp-if') |
|
|
|
|
|
|
|
var replace = require('gulp-replace') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var disableLiveReload = gutil.env.disableLiveReload |
|
|
|
|
|
|
|
|
|
|
|
// browser reload
|
|
|
|
// browser reload
|
|
|
|
|
|
|
|
|
|
|
@ -72,8 +76,8 @@ gulp.task('copy:root', copyTask({ |
|
|
|
pattern: '/*', |
|
|
|
pattern: '/*', |
|
|
|
})) |
|
|
|
})) |
|
|
|
|
|
|
|
|
|
|
|
gulp.task('manifest:cleanup', function() { |
|
|
|
gulp.task('manifest:chrome', function() { |
|
|
|
return gulp.src('./dist/firefox/manifest.json') |
|
|
|
return gulp.src('./dist/chrome/manifest.json') |
|
|
|
.pipe(jsoneditor(function(json) { |
|
|
|
.pipe(jsoneditor(function(json) { |
|
|
|
delete json.applications |
|
|
|
delete json.applications |
|
|
|
return json |
|
|
|
return json |
|
|
@ -81,7 +85,33 @@ gulp.task('manifest:cleanup', function() { |
|
|
|
.pipe(gulp.dest('./dist/chrome', { overwrite: true })) |
|
|
|
.pipe(gulp.dest('./dist/chrome', { overwrite: true })) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
gulp.task('copy', gulp.series(gulp.parallel('copy:locales','copy:images','copy:fonts','copy:reload','copy:root'), 'manifest:cleanup')) |
|
|
|
gulp.task('manifest:production', function() { |
|
|
|
|
|
|
|
return gulp.src([ |
|
|
|
|
|
|
|
'./dist/firefox/manifest.json', |
|
|
|
|
|
|
|
'./dist/chrome/manifest.json', |
|
|
|
|
|
|
|
'./dist/edge/manifest.json', |
|
|
|
|
|
|
|
],{base: './dist/'}) |
|
|
|
|
|
|
|
.pipe(gulpif(disableLiveReload,jsoneditor(function(json) { |
|
|
|
|
|
|
|
json.background.scripts = ["scripts/background.js"] |
|
|
|
|
|
|
|
return json |
|
|
|
|
|
|
|
}))) |
|
|
|
|
|
|
|
.pipe(gulp.dest('./dist/', { overwrite: true })) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const staticFiles = [ |
|
|
|
|
|
|
|
'locales', |
|
|
|
|
|
|
|
'images', |
|
|
|
|
|
|
|
'fonts', |
|
|
|
|
|
|
|
'root' |
|
|
|
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var copyStrings = staticFiles.map(staticFile => `copy:${staticFile}`) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!disableLiveReload) { |
|
|
|
|
|
|
|
copyStrings.push('copy:reload') |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gulp.task('copy', gulp.series(gulp.parallel(...copyStrings), 'manifest:production', 'manifest:chrome')) |
|
|
|
gulp.task('copy:watch', function(){ |
|
|
|
gulp.task('copy:watch', function(){ |
|
|
|
gulp.watch(['./app/{_locales,images}/*', './app/scripts/chromereload.js', './app/*.{html,json}'], gulp.series('copy')) |
|
|
|
gulp.watch(['./app/{_locales,images}/*', './app/scripts/chromereload.js', './app/*.{html,json}'], gulp.series('copy')) |
|
|
|
}) |
|
|
|
}) |
|
|
@ -115,14 +145,18 @@ const jsFiles = [ |
|
|
|
'popup', |
|
|
|
'popup', |
|
|
|
] |
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var jsDevStrings = jsFiles.map(jsFile => `dev:js:${jsFile}`) |
|
|
|
|
|
|
|
var jsBuildStrings = jsFiles.map(jsFile => `build:js:${jsFile}`) |
|
|
|
|
|
|
|
|
|
|
|
jsFiles.forEach((jsFile) => { |
|
|
|
jsFiles.forEach((jsFile) => { |
|
|
|
gulp.task(`dev:js:${jsFile}`, bundleTask({ watch: true, filename: `${jsFile}.js` })) |
|
|
|
gulp.task(`dev:js:${jsFile}`, bundleTask({ watch: true, filename: `${jsFile}.js` })) |
|
|
|
gulp.task(`build:js:${jsFile}`, bundleTask({ watch: false, filename: `${jsFile}.js` })) |
|
|
|
gulp.task(`build:js:${jsFile}`, bundleTask({ watch: false, filename: `${jsFile}.js` })) |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
gulp.task('dev:js', gulp.parallel('dev:js:inpage','dev:js:contentscript','dev:js:background','dev:js:popup')) |
|
|
|
gulp.task('dev:js', gulp.parallel(...jsDevStrings)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gulp.task('build:js', gulp.parallel(...jsBuildStrings)) |
|
|
|
|
|
|
|
|
|
|
|
gulp.task('build:js', gulp.parallel('build:js:inpage','build:js:contentscript','build:js:background','build:js:popup')) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// clean dist
|
|
|
|
// clean dist
|
|
|
|
|
|
|
|
|
|
|
@ -152,6 +186,7 @@ gulp.task('zip', gulp.parallel('zip:chrome', 'zip:firefox', 'zip:edge')) |
|
|
|
// high level tasks
|
|
|
|
// high level tasks
|
|
|
|
|
|
|
|
|
|
|
|
gulp.task('dev', gulp.series('dev:js', 'copy', gulp.parallel('copy:watch', 'dev:reload'))) |
|
|
|
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'))) |
|
|
|
gulp.task('dist', gulp.series('build', 'zip')) |
|
|
|
gulp.task('dist', gulp.series('build', 'zip')) |
|
|
|
|
|
|
|
|
|
|
@ -170,7 +205,7 @@ function copyTask(opts){ |
|
|
|
destinations.forEach(function(destination) { |
|
|
|
destinations.forEach(function(destination) { |
|
|
|
stream = stream.pipe(gulp.dest(destination)) |
|
|
|
stream = stream.pipe(gulp.dest(destination)) |
|
|
|
}) |
|
|
|
}) |
|
|
|
stream.pipe(livereload()) |
|
|
|
stream.pipe(gulpif(!disableLiveReload,livereload())) |
|
|
|
|
|
|
|
|
|
|
|
return stream |
|
|
|
return stream |
|
|
|
} |
|
|
|
} |
|
|
@ -211,7 +246,7 @@ function bundleTask(opts) { |
|
|
|
.pipe(gulp.dest('./dist/firefox/scripts')) |
|
|
|
.pipe(gulp.dest('./dist/firefox/scripts')) |
|
|
|
.pipe(gulp.dest('./dist/chrome/scripts')) |
|
|
|
.pipe(gulp.dest('./dist/chrome/scripts')) |
|
|
|
.pipe(gulp.dest('./dist/edge/scripts')) |
|
|
|
.pipe(gulp.dest('./dist/edge/scripts')) |
|
|
|
.pipe(livereload()) |
|
|
|
.pipe(gulpif(!disableLiveReload,livereload())) |
|
|
|
|
|
|
|
|
|
|
|
) |
|
|
|
) |
|
|
|
} |
|
|
|
} |
|
|
|