aboutsummaryrefslogtreecommitdiffstats
path: root/gulpfile.js
diff options
context:
space:
mode:
authorkumavis <aaron@kumavis.me>2018-03-29 14:11:07 +0800
committerkumavis <aaron@kumavis.me>2018-03-29 14:11:07 +0800
commit86c7c6746d64e8c9a32010520d49fc34c5e2edba (patch)
treea7259da347806b585946c8f17525979cdc2b677b /gulpfile.js
parentf9b680b09f3de33865371bb8430f1d62b5b19a1c (diff)
downloadtangerine-wallet-browser-86c7c6746d64e8c9a32010520d49fc34c5e2edba.tar
tangerine-wallet-browser-86c7c6746d64e8c9a32010520d49fc34c5e2edba.tar.gz
tangerine-wallet-browser-86c7c6746d64e8c9a32010520d49fc34c5e2edba.tar.bz2
tangerine-wallet-browser-86c7c6746d64e8c9a32010520d49fc34c5e2edba.tar.lz
tangerine-wallet-browser-86c7c6746d64e8c9a32010520d49fc34c5e2edba.tar.xz
tangerine-wallet-browser-86c7c6746d64e8c9a32010520d49fc34c5e2edba.tar.zst
tangerine-wallet-browser-86c7c6746d64e8c9a32010520d49fc34c5e2edba.zip
build - refactor copy and copy:watch (renamed to copy:dev)
Diffstat (limited to 'gulpfile.js')
-rw-r--r--gulpfile.js106
1 files changed, 62 insertions, 44 deletions
diff --git a/gulpfile.js b/gulpfile.js
index cd523a107..d6892cc7e 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -54,51 +54,65 @@ gulp.task('dev:reload', function() {
})
})
-
// copy universal
-gulp.task('copy:locales', copyTask({
+const copyTaskNames = []
+const copyDevTaskNames = []
+
+createCopyTasks('locales', {
source: './app/_locales/',
destinations: commonPlatforms.map(platform => `./dist/${platform}/_locales`),
-}))
-gulp.task('copy:images', copyTask({
+})
+createCopyTasks('images', {
source: './app/images/',
destinations: commonPlatforms.map(platform => `./dist/${platform}/images`),
-}))
-gulp.task('copy:contractImages', copyTask({
- source: './node_modules/eth-contract-metadata/images/',
+})
+createCopyTasks('contractImages', {
+ source: `${require.resolve('eth-contract-metadata')}/images/`,
destinations: commonPlatforms.map(platform => `./dist/${platform}/images/contract`),
-}))
-gulp.task('copy:fonts', copyTask({
+})
+createCopyTasks('fonts', {
source: './app/fonts/',
destinations: commonPlatforms.map(platform => `./dist/${platform}/fonts`),
-}))
-gulp.task('copy:reload', copyTask({
+})
+createCopyTasks('reload', {
+ devOnly: true,
source: './app/scripts/',
- destinations: commonPlatforms.map(platform => `./dist/${platform}`),
pattern: '/chromereload.js',
-}))
-gulp.task('copy:html', copyTask({
- source: './app/',
destinations: commonPlatforms.map(platform => `./dist/${platform}`),
+})
+createCopyTasks('html', {
+ source: './app/',
pattern: '/*.html',
-}))
+ destinations: commonPlatforms.map(platform => `./dist/${platform}`),
+})
// copy extension
-gulp.task('copy:manifest', copyTask({
+createCopyTasks('manifest', {
source: './app/',
- destinations: browserPlatforms.map(platform => `./dist/${platform}`),
pattern: '/*.json',
-}))
+ destinations: browserPlatforms.map(platform => `./dist/${platform}`),
+})
// copy mascara
-gulp.task('copy:html:mascara', copyTask({
+createCopyTasks('html:mascara', {
source: './mascara/',
- destinations: [`./dist/mascara/`],
pattern: 'proxy/index.html',
-}))
+ destinations: [`./dist/mascara/`],
+})
+
+function createCopyTasks(label, opts) {
+ if (!opts.devOnly) {
+ const copyTaskName = `copy:${label}`
+ copyTask(copyTaskName, opts)
+ copyTaskNames.push(copyTaskName)
+ }
+ const copyDevTaskName = `copy:dev:${label}`
+ copyTask(copyDevTaskName, Object.assign({ devMode: true }, opts))
+ copyDevTaskNames.push(copyDevTaskName)
+}
// manifest tinkering
@@ -145,20 +159,6 @@ gulp.task('manifest:production', function() {
.pipe(gulp.dest('./dist/', { overwrite: true }))
})
-const copyTaskNames = [
- 'copy:locales',
- 'copy:images',
- 'copy:fonts',
- 'copy:manifest',
- 'copy:html',
- 'copy:html:mascara',
- 'copy:contractImages',
-]
-
-if (debugMode) {
- copyTaskNames.push('copy:reload')
-}
-
gulp.task('copy',
gulp.series(
gulp.parallel(...copyTaskNames),
@@ -167,9 +167,14 @@ gulp.task('copy',
'manifest:opera'
)
)
-gulp.task('copy:watch', function(){
- gulp.watch(['./app/{_locales,images}/*', './app/scripts/chromereload.js', './app/*.{html,json}'], gulp.series('copy'))
-})
+
+gulp.task('copy:dev',
+ gulp.series(
+ gulp.parallel(...copyDevTaskNames),
+ 'manifest:chrome',
+ 'manifest:opera'
+ )
+)
// lint js
@@ -323,7 +328,7 @@ gulp.task('dev',
'copy',
gulp.parallel(
'watch:scss',
- 'copy:watch',
+ 'copy:dev',
'dev:reload'
)
)
@@ -351,20 +356,33 @@ gulp.task('dist',
// task generators
-function copyTask(opts){
+function copyTask(taskName, opts){
const source = opts.source
const destination = opts.destination
const destinations = opts.destinations || [ destination ]
const pattern = opts.pattern || '/**/*'
+ const devMode = opts.devMode
- return performCopy
+ return gulp.task(taskName, performCopy)
function performCopy(){
- let stream = gulp.src(source + pattern, { base: source })
+ // stream from source
+ let stream
+ if (devMode) {
+ stream = watch(source + pattern, { base: source })
+ } else {
+ stream = gulp.src(source + pattern, { base: source })
+ }
+
+ // copy to destinations
destinations.forEach(function(destination) {
stream = stream.pipe(gulp.dest(destination))
})
- stream.pipe(gulpif(debugMode,livereload()))
+
+ // trigger reload
+ if (devMode) {
+ stream.pipe(livereload())
+ }
return stream
}