aboutsummaryrefslogtreecommitdiffstats
path: root/gulpfile.js
diff options
context:
space:
mode:
authorbrunobar79 <brunobar79@gmail.com>2018-11-14 06:21:15 +0800
committerbrunobar79 <brunobar79@gmail.com>2018-11-14 06:21:15 +0800
commit484aa6801ea50fb08253fd08559710c53e0c189d (patch)
tree2a7876d3800e57aafab39a6beebe00abf7fc26ba /gulpfile.js
parentc651212025ab7cd0309d96be6687c1eba35ab9fa (diff)
parent0549782595335e8257d1b4abf7d6220020e2c8db (diff)
downloadtangerine-wallet-browser-484aa6801ea50fb08253fd08559710c53e0c189d.tar
tangerine-wallet-browser-484aa6801ea50fb08253fd08559710c53e0c189d.tar.gz
tangerine-wallet-browser-484aa6801ea50fb08253fd08559710c53e0c189d.tar.bz2
tangerine-wallet-browser-484aa6801ea50fb08253fd08559710c53e0c189d.tar.lz
tangerine-wallet-browser-484aa6801ea50fb08253fd08559710c53e0c189d.tar.xz
tangerine-wallet-browser-484aa6801ea50fb08253fd08559710c53e0c189d.tar.zst
tangerine-wallet-browser-484aa6801ea50fb08253fd08559710c53e0c189d.zip
Merge branch 'develop' into trezor-v5
Diffstat (limited to 'gulpfile.js')
-rw-r--r--gulpfile.js46
1 files changed, 45 insertions, 1 deletions
diff --git a/gulpfile.js b/gulpfile.js
index c3d9019ff..1487f717e 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -26,6 +26,16 @@ const pify = require('pify')
const gulpMultiProcess = require('gulp-multi-process')
const endOfStream = pify(require('end-of-stream'))
+const packageJSON = require('./package.json')
+const dependencies = Object.keys(packageJSON && packageJSON.dependencies || {})
+const materialUIDependencies = ['@material-ui/core']
+const reactDepenendencies = dependencies.filter(dep => dep.match(/react/))
+
+const uiDependenciesToBundle = [
+ ...materialUIDependencies,
+ ...reactDepenendencies,
+]
+
function gulpParallel (...args) {
return function spawnGulpChildProcess (cb) {
return gulpMultiProcess(args, cb, true)
@@ -283,11 +293,32 @@ const buildJsFiles = [
]
// bundle tasks
+createTasksForBuildJsUIDeps({ dependenciesToBundle: uiDependenciesToBundle, filename: 'libs' })
createTasksForBuildJsExtension({ buildJsFiles, taskPrefix: 'dev:extension:js', devMode: true })
createTasksForBuildJsExtension({ buildJsFiles, taskPrefix: 'build:extension:js' })
createTasksForBuildJsMascara({ taskPrefix: 'build:mascara:js' })
createTasksForBuildJsMascara({ taskPrefix: 'dev:mascara:js', devMode: true })
+function createTasksForBuildJsUIDeps ({ dependenciesToBundle, filename }) {
+ const destinations = browserPlatforms.map(platform => `./dist/${platform}`)
+
+ const bundleTaskOpts = Object.assign({
+ buildSourceMaps: true,
+ sourceMapDir: '../sourcemaps',
+ minifyBuild: true,
+ devMode: false,
+ })
+
+ gulp.task('build:extension:js:uideps', bundleTask(Object.assign({
+ label: filename,
+ filename: `${filename}.js`,
+ destinations,
+ buildLib: true,
+ dependenciesToBundle: uiDependenciesToBundle,
+ }, bundleTaskOpts)))
+}
+
+
function createTasksForBuildJsExtension ({ buildJsFiles, taskPrefix, devMode, bundleTaskOpts = {} }) {
// inpage must be built before all other scripts:
const rootDir = './app/scripts'
@@ -330,6 +361,7 @@ function createTasksForBuildJs ({ rootDir, taskPrefix, bundleTaskOpts, destinati
label: jsFile,
filename: `${jsFile}.js`,
filepath: `${rootDir}/${jsFile}.js`,
+ externalDependencies: jsFile === 'ui' && !bundleTaskOpts.devMode && uiDependenciesToBundle,
destinations,
}, bundleTaskOpts)))
})
@@ -406,6 +438,7 @@ gulp.task('build',
'clean',
'build:scss',
gulpParallel(
+ 'build:extension:js:uideps',
'build:extension:js',
'build:mascara:js',
'copy'
@@ -454,14 +487,25 @@ function zipTask (target) {
function generateBundler (opts, performBundle) {
const browserifyOpts = assign({}, watchify.args, {
- entries: [opts.filepath],
plugin: 'browserify-derequire',
debug: opts.buildSourceMaps,
fullPaths: opts.buildWithFullPaths,
})
+ if (!opts.buildLib) {
+ browserifyOpts['entries'] = [opts.filepath]
+ }
+
let bundler = browserify(browserifyOpts)
+ if (opts.buildLib) {
+ bundler = bundler.require(opts.dependenciesToBundle)
+ }
+
+ if (opts.externalDependencies) {
+ bundler = bundler.external(opts.externalDependencies)
+ }
+
// inject variables into bundle
bundler.transform(envify({
METAMASK_DEBUG: opts.devMode,