Merge pull request #16658 from BerkeleyTrue/feat/prod-source-maps

feat(build): Add source maps to production
This commit is contained in:
mrugesh mohapatra
2018-02-08 00:02:28 +05:30
committed by GitHub
5 changed files with 362 additions and 75 deletions

View File

@ -20,7 +20,6 @@ const Rx = require('rx'),
uglify = require('gulp-uglify'),
merge = require('merge-stream'),
sourcemaps = require('gulp-sourcemaps'),
gulpif = require('gulp-if'),
// react app
webpack = require('webpack'),
@ -153,10 +152,6 @@ const paths = {
]
};
const webpackOptions = {
devtool: 'inline-source-map'
};
const errorNotifier = notify.onError({
title: 'Compile Error',
message: '<%= error %>'
@ -275,40 +270,23 @@ gulp.task('test-challenges', ['lint-json']);
gulp.task('pack-client', function() {
if (!__DEV__) { console.log('\n\nbundling production\n\n'); }
function condition(file) {
const filepath = file.relative;
return __DEV__ || (/json$/).test('' + filepath);
}
const dest = webpackConfig.output.path;
return gulp.src(webpackConfig.entry.bundle)
.pipe(plumber({ errorHandler }))
.pipe(webpackStream({
...webpackConfig,
...webpackOptions
}))
.pipe(gulpif(condition, gutil.noop(), uglify()))
.pipe(webpackStream(webpackConfig))
.pipe(gulp.dest(dest));
});
gulp.task('pack-frame-runner', function() {
if (!__DEV__) { console.log('\n\nbundling frame production\n\n'); }
function condition(file) {
const filepath = file.relative;
return __DEV__ || (/json$/).test('' + filepath);
}
const dest = webpackFrameConfig.output.path;
return gulp.src(webpackFrameConfig.entry)
.pipe(plumber({ errorHandler }))
.pipe(webpackStream({
...webpackFrameConfig,
...webpackOptions
}))
.pipe(gulpif(condition, gutil.noop(), uglify()))
.pipe(webpackStream(webpackFrameConfig))
.pipe(gulp.dest(dest));
});

382
package-lock.json generated
View File

@ -386,6 +386,12 @@
}
}
},
"aproba": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
"dev": true
},
"archy": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
@ -2457,6 +2463,38 @@
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
"integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
},
"cacache": {
"version": "10.0.2",
"resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.2.tgz",
"integrity": "sha512-dljb7dk1jqO5ogE+dRpoR9tpHYv5xz9vPSNunh1+0wRuNdYxmzp9WmsyokgW/DUF1FDRVA/TMsmxt027R8djbQ==",
"dev": true,
"requires": {
"bluebird": "3.5.1",
"chownr": "1.0.1",
"glob": "7.1.2",
"graceful-fs": "4.1.11",
"lru-cache": "4.1.1",
"mississippi": "1.3.1",
"mkdirp": "0.5.1",
"move-concurrently": "1.0.1",
"promise-inflight": "1.0.1",
"rimraf": "2.6.2",
"ssri": "5.1.0",
"unique-filename": "1.1.0",
"y18n": "3.2.1"
},
"dependencies": {
"rimraf": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
"dev": true,
"requires": {
"glob": "7.1.2"
}
}
}
},
"cache-base": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
@ -2685,6 +2723,12 @@
"readdirp": "2.1.0"
}
},
"chownr": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
"integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
"dev": true
},
"chunk-manifest-webpack-plugin": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/chunk-manifest-webpack-plugin/-/chunk-manifest-webpack-plugin-1.1.2.tgz",
@ -3475,6 +3519,31 @@
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"copy-concurrently": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
"integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
"dev": true,
"requires": {
"aproba": "1.2.0",
"fs-write-stream-atomic": "1.0.10",
"iferr": "0.1.5",
"mkdirp": "0.5.1",
"rimraf": "2.6.2",
"run-queue": "1.0.3"
},
"dependencies": {
"rimraf": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
"dev": true,
"requires": {
"glob": "7.1.2"
}
}
}
},
"copy-descriptor": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
@ -3879,6 +3948,12 @@
"array-find-index": "1.0.2"
}
},
"cyclist": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
"integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
"dev": true
},
"cz-conventional-changelog": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-1.2.0.tgz",
@ -5854,6 +5929,16 @@
"write": "0.2.1"
}
},
"flush-write-stream": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz",
"integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=",
"dev": true,
"requires": {
"inherits": "2.0.3",
"readable-stream": "2.2.7"
}
},
"font-awesome": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
@ -5890,12 +5975,6 @@
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
},
"fork-stream": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/fork-stream/-/fork-stream-0.0.4.tgz",
"integrity": "sha1-24Sfznf2cIpfjzhq5TOgkHtUrnA=",
"dev": true
},
"form-data": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
@ -5951,6 +6030,16 @@
"integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=",
"dev": true
},
"from2": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
"integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
"dev": true,
"requires": {
"inherits": "2.0.3",
"readable-stream": "2.2.7"
}
},
"fs-exists-sync": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz",
@ -5974,6 +6063,18 @@
"integrity": "sha1-jNF0XItPiinIyuw5JHaSG6GV9WA=",
"dev": true
},
"fs-write-stream-atomic": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
"integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
"dev": true,
"requires": {
"graceful-fs": "4.1.11",
"iferr": "0.1.5",
"imurmurhash": "0.1.4",
"readable-stream": "2.2.7"
}
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@ -7633,17 +7734,6 @@
}
}
},
"gulp-if": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/gulp-if/-/gulp-if-2.0.2.tgz",
"integrity": "sha1-pJe351cwBQQcqivIt92jyARE1ik=",
"dev": true,
"requires": {
"gulp-match": "1.0.3",
"ternary-stream": "2.0.1",
"through2": "2.0.3"
}
},
"gulp-jsonlint": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/gulp-jsonlint/-/gulp-jsonlint-1.2.0.tgz",
@ -7726,15 +7816,6 @@
"vinyl-sourcemaps-apply": "0.2.1"
}
},
"gulp-match": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/gulp-match/-/gulp-match-1.0.3.tgz",
"integrity": "sha1-kcfA1/Kb7NZgbVfYCn+Hdqh6uo4=",
"dev": true,
"requires": {
"minimatch": "3.0.4"
}
},
"gulp-nodemon": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/gulp-nodemon/-/gulp-nodemon-2.2.1.tgz",
@ -8420,6 +8501,12 @@
"resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.0.0.tgz",
"integrity": "sha1-NGpCj0dKrI9QzzeE6i0PFvYr2ms="
},
"iferr": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
"integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
"dev": true
},
"ignore": {
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz",
@ -11507,6 +11594,24 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
},
"mississippi": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.1.tgz",
"integrity": "sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg==",
"dev": true,
"requires": {
"concat-stream": "1.6.0",
"duplexify": "3.5.1",
"end-of-stream": "1.4.0",
"flush-write-stream": "1.0.2",
"from2": "2.3.0",
"parallel-transform": "1.1.0",
"pump": "1.0.3",
"pumpify": "1.4.0",
"stream-each": "1.2.2",
"through2": "2.0.3"
}
},
"mixin-deep": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.0.tgz",
@ -11729,6 +11834,31 @@
"resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.1.tgz",
"integrity": "sha1-KghfXHUSlMdefoH27CVFspy/Qtk="
},
"move-concurrently": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
"integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
"dev": true,
"requires": {
"aproba": "1.2.0",
"copy-concurrently": "1.0.5",
"fs-write-stream-atomic": "1.0.10",
"mkdirp": "0.5.1",
"rimraf": "2.6.2",
"run-queue": "1.0.3"
},
"dependencies": {
"rimraf": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
"dev": true,
"requires": {
"glob": "7.1.2"
}
}
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@ -13104,6 +13234,17 @@
"integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==",
"dev": true
},
"parallel-transform": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz",
"integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
"dev": true,
"requires": {
"cyclist": "0.2.2",
"inherits": "2.0.3",
"readable-stream": "2.2.7"
}
},
"parse-asn1": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz",
@ -13564,6 +13705,12 @@
"asap": "1.0.0"
}
},
"promise-inflight": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
"integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
"dev": true
},
"prop-types": {
"version": "15.6.0",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz",
@ -13648,6 +13795,51 @@
"randombytes": "2.0.5"
}
},
"pump": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz",
"integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==",
"dev": true,
"requires": {
"end-of-stream": "1.4.0",
"once": "1.4.0"
}
},
"pumpify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz",
"integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==",
"dev": true,
"requires": {
"duplexify": "3.5.3",
"inherits": "2.0.3",
"pump": "2.0.1"
},
"dependencies": {
"duplexify": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.3.tgz",
"integrity": "sha512-g8ID9OroF9hKt2POf8YLayy+9594PzmM3scI00/uBXocX3TWNgoB67hjzkFe9ITAbQOne/lLdBxHXvYUM4ZgGA==",
"dev": true,
"requires": {
"end-of-stream": "1.4.0",
"inherits": "2.0.3",
"readable-stream": "2.2.7",
"stream-shift": "1.0.0"
}
},
"pump": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
"integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
"dev": true,
"requires": {
"end-of-stream": "1.4.0",
"once": "1.4.0"
}
}
}
},
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
@ -14806,6 +14998,15 @@
"is-promise": "2.1.0"
}
},
"run-queue": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
"integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
"dev": true,
"requires": {
"aproba": "1.2.0"
}
},
"rx": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
@ -14934,6 +15135,24 @@
"integrity": "sha512-Jl2bH8zUtKn70JJIIPTEfWGDXK+TB9wV55C/zwSoDum4T1X1bsIBudO1QkxOG2RZMgkcKexfGQLlDCH37c/4fg==",
"dev": true
},
"schema-utils": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.3.tgz",
"integrity": "sha512-sgv/iF/T4/SewJkaVpldKC4WjSkz0JsOh2eKtxCPpCO1oR05+7MOF+H476HVRbLArkgA7j5TRJJ4p2jdFkUGQQ==",
"dev": true,
"requires": {
"ajv": "5.3.0",
"ajv-keywords": "2.1.1"
},
"dependencies": {
"ajv-keywords": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz",
"integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=",
"dev": true
}
}
},
"semver": {
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
@ -16002,6 +16221,15 @@
"tweetnacl": "0.14.5"
}
},
"ssri": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-5.1.0.tgz",
"integrity": "sha512-TevC8fgxQKTfQ1nWtM9GNzr3q5rrHNntG9CDMH1k3QhSZI6Kb+NbjLRs8oPFZa2Hgo7zoekL+UTvoEk7tsbjQg==",
"dev": true,
"requires": {
"safe-buffer": "5.1.1"
}
},
"stable": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz",
@ -16096,6 +16324,16 @@
"integrity": "sha1-pB6tGm1ggc63n2WwYZAbbY89HQ8=",
"dev": true
},
"stream-each": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz",
"integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==",
"dev": true,
"requires": {
"end-of-stream": "1.4.0",
"stream-shift": "1.0.0"
}
},
"stream-http": {
"version": "2.7.2",
"resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz",
@ -16725,18 +16963,6 @@
"execa": "0.7.0"
}
},
"ternary-stream": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/ternary-stream/-/ternary-stream-2.0.1.tgz",
"integrity": "sha1-Bk5Im0tb9gumpre8fy9cJ07Pgmk=",
"dev": true,
"requires": {
"duplexify": "3.5.1",
"fork-stream": "0.0.4",
"merge-stream": "1.0.1",
"through2": "2.0.3"
}
},
"text-encoding": {
"version": "0.6.4",
"resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.6.4.tgz",
@ -17158,14 +17384,43 @@
"optional": true
},
"uglifyjs-webpack-plugin": {
"version": "0.4.6",
"resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
"integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.1.8.tgz",
"integrity": "sha512-XG8/QmR1pyPeE1kj2aigo5kos8umefB31zW+PMvAAytHSB0T/vQvN6sqt8+Sh+y0b0A7zlmxNi2dzRnj0wcqGA==",
"dev": true,
"requires": {
"source-map": "0.5.7",
"uglify-js": "2.8.29",
"webpack-sources": "1.1.0"
"cacache": "10.0.2",
"find-cache-dir": "1.0.0",
"schema-utils": "0.4.3",
"serialize-javascript": "1.4.0",
"source-map": "0.6.1",
"uglify-es": "3.3.9",
"webpack-sources": "1.1.0",
"worker-farm": "1.5.2"
},
"dependencies": {
"commander": {
"version": "2.13.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz",
"integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==",
"dev": true
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"uglify-es": {
"version": "3.3.9",
"resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz",
"integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==",
"dev": true,
"requires": {
"commander": "2.13.0",
"source-map": "0.6.1"
}
}
}
},
"uid-safe": {
@ -17260,6 +17515,24 @@
}
}
},
"unique-filename": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz",
"integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=",
"dev": true,
"requires": {
"unique-slug": "2.0.0"
}
},
"unique-slug": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz",
"integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=",
"dev": true,
"requires": {
"imurmurhash": "0.1.4"
}
},
"unique-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz",
@ -17924,6 +18197,17 @@
"has-flag": "2.0.0"
}
},
"uglifyjs-webpack-plugin": {
"version": "0.4.6",
"resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz",
"integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=",
"dev": true,
"requires": {
"source-map": "0.5.7",
"uglify-js": "2.8.29",
"webpack-sources": "1.1.0"
}
},
"which-module": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
@ -18401,6 +18685,16 @@
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
},
"worker-farm": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.2.tgz",
"integrity": "sha512-XxiQ9kZN5n6mmnW+mFJ+wXjNNI/Nx4DIdaAKLX1Bn6LYBWlN/zaBhu34DQYPZ1AJobQuu67S2OfDdNSVULvXkQ==",
"dev": true,
"requires": {
"errno": "0.1.4",
"xtend": "4.0.1"
}
},
"wrap-ansi": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",

View File

@ -157,7 +157,6 @@
"gulp-babel": "^6.1.1",
"gulp-concat": "^2.6.0",
"gulp-eslint": "^3.0.1",
"gulp-if": "^2.0.0",
"gulp-jsonlint": "^1.1.0",
"gulp-less": "^3.0.3",
"gulp-nodemon": "^2.0.3",
@ -185,6 +184,7 @@
"sort-keys": "^1.1.1",
"tap-spec": "^4.1.1",
"tape": "^4.2.2",
"uglifyjs-webpack-plugin": "^1.1.8",
"validate-commit-msg": "^2.12.2",
"webpack": "^3.10.0",
"webpack-dev-middleware": "^2.0.4",

View File

@ -1,8 +1,9 @@
var webpack = require('webpack');
var path = require('path');
var ManifestPlugin = require('webpack-manifest-plugin');
var ChunkManifestPlugin = require('chunk-manifest-webpack-plugin');
const webpack = require('webpack');
const path = require('path');
const ManifestPlugin = require('webpack-manifest-plugin');
const ChunkManifestPlugin = require('chunk-manifest-webpack-plugin');
const Visualizer = require('webpack-visualizer-plugin');
const UglifyPlugin = require('uglifyjs-webpack-plugin');
var __DEV__ = process.env.NODE_ENV !== 'production';
@ -10,7 +11,7 @@ module.exports = {
entry: {
bundle: './client'
},
devtool: __DEV__ ? 'inline-source-map' : null,
devtool: __DEV__ ? 'inline-source-map' : 'source-map',
node: {
// Mock Node.js modules that Babel require()s but that we don't
// particularly care about.
@ -66,6 +67,11 @@ module.exports = {
if (!__DEV__) {
module.exports.plugins.push(
new UglifyPlugin({
test: /\.js($|\?)/i,
cache: true,
sourceMap: true
}),
new ManifestPlugin({ fileName: 'react-manifest.json' }),
new ChunkManifestPlugin({
filename: 'chunk-manifest.json',

View File

@ -1,11 +1,12 @@
const webpack = require('webpack');
const path = require('path');
const UglifyPlugin = require('uglifyjs-webpack-plugin');
const __DEV__ = process.env.NODE_ENV !== 'production';
module.exports = {
entry: './client/frame-runner.js',
devtool: __DEV__ ? 'inline-source-map' : null,
devtool: __DEV__ ? 'inline-source-map' : 'source-map',
node: {
// Mock Node.js modules that Babel require()s but that we don't
// particularly care about.
@ -68,4 +69,12 @@ if (__DEV__) {
// prevents build on error
new webpack.NoEmitOnErrorsPlugin()
);
} else {
module.exports.plugins.push(
new UglifyPlugin({
test: /\.js($|\?)/i,
cache: true,
sourceMap: true
})
);
}