aboutsummaryrefslogtreecommitdiffstats
path: root/gulpfile.js
diff options
context:
space:
mode:
authorThomas Huang <tmashuang@users.noreply.github.com>2018-11-23 03:06:46 +0800
committerGitHub <noreply@github.com>2018-11-23 03:06:46 +0800
commitbe3619cd802536894097d81e7f31d38b0c2b3e9f (patch)
tree2591ff5a9fe64f2dbd9fa089f5c51e8d0141be24 /gulpfile.js
parent337a4e1b4ea7a560d773bc262b2adffd1617a39b (diff)
parent804b273cec61246f0d23efd461ccd2cc5c64bf22 (diff)
downloadtangerine-wallet-browser-be3619cd802536894097d81e7f31d38b0c2b3e9f.tar
tangerine-wallet-browser-be3619cd802536894097d81e7f31d38b0c2b3e9f.tar.gz
tangerine-wallet-browser-be3619cd802536894097d81e7f31d38b0c2b3e9f.tar.bz2
tangerine-wallet-browser-be3619cd802536894097d81e7f31d38b0c2b3e9f.tar.lz
tangerine-wallet-browser-be3619cd802536894097d81e7f31d38b0c2b3e9f.tar.xz
tangerine-wallet-browser-be3619cd802536894097d81e7f31d38b0c2b3e9f.tar.zst
tangerine-wallet-browser-be3619cd802536894097d81e7f31d38b0c2b3e9f.zip
Merge pull request #5793 from MetaMask/develop
Bring master up to date with develop
Diffstat (limited to 'gulpfile.js')
-rw-r--r--gulpfile.js50
1 files changed, 49 insertions, 1 deletions
diff --git a/gulpfile.js b/gulpfile.js
index 0a0e3b3d5..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)
@@ -74,6 +84,10 @@ createCopyTasks('fonts', {
source: './app/fonts/',
destinations: commonPlatforms.map(platform => `./dist/${platform}/fonts`),
})
+createCopyTasks('vendor', {
+ source: './app/vendor/',
+ destinations: commonPlatforms.map(platform => `./dist/${platform}/vendor`),
+})
createCopyTasks('reload', {
devOnly: true,
source: './app/scripts/',
@@ -279,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'
@@ -326,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)))
})
@@ -402,6 +438,7 @@ gulp.task('build',
'clean',
'build:scss',
gulpParallel(
+ 'build:extension:js:uideps',
'build:extension:js',
'build:mascara:js',
'copy'
@@ -450,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,