Minify react in production

pull/4660/head
Berkeley Martinez 2015-11-22 20:26:44 -08:00
parent 8aace767c0
commit c71636b629
3 changed files with 21 additions and 4 deletions

View File

@ -13,6 +13,8 @@ var Rx = require('rx'),
reduce = require('gulp-reduce-file'), reduce = require('gulp-reduce-file'),
sortKeys = require('sort-keys'), sortKeys = require('sort-keys'),
debug = require('debug')('freecc:gulp'), debug = require('debug')('freecc:gulp'),
yargs = require('yargs'),
uglify = require('gulp-uglify'),
// react app // react app
webpack = require('gulp-webpack'), webpack = require('gulp-webpack'),
@ -38,7 +40,7 @@ var Rx = require('rx'),
Rx.config.longStackSupport = true; Rx.config.longStackSupport = true;
var __DEV__ = process.env.NODE_ENV !== 'production'; var __DEV__ = !yargs.argv.p;
var reloadDelay = 1000; var reloadDelay = 1000;
var reload = sync.reload; var reload = sync.reload;
var paths = { var paths = {
@ -198,6 +200,8 @@ gulp.task('lint-json', function() {
gulp.task('test-challenges', ['lint-json']); gulp.task('test-challenges', ['lint-json']);
gulp.task('pack-client', function() { gulp.task('pack-client', function() {
if (!__DEV__) { console.log('\n\nbundling production\n\n'); }
var manifestName = 'react-manifest.json'; var manifestName = 'react-manifest.json';
var dest = webpackConfig.output.path; var dest = webpackConfig.output.path;
@ -208,6 +212,7 @@ gulp.task('pack-client', function() {
webpackConfig, webpackConfig,
webpackOptions webpackOptions
))) )))
.pipe(__DEV__ ? gutil.noop() : uglify())
.pipe(gulp.dest(dest)) .pipe(gulp.dest(dest))
.pipe(rev()) .pipe(rev())
// copy files to public // copy files to public

View File

@ -8,7 +8,7 @@
"scripts": { "scripts": {
"first-time": "npm run create-rev && echo '\n\nseeding database\n\n' && node seed && node seed/nonprofits", "first-time": "npm run create-rev && echo '\n\nseeding database\n\n' && node seed && node seed/nonprofits",
"create-rev": "test ! -e server/rev-manifest.json && echo '\n\ncreating manifest\n\n' && touch server/rev-manifest.json && echo '{}' >> server/rev-manifest.json", "create-rev": "test ! -e server/rev-manifest.json && echo '\n\ncreating manifest\n\n' && touch server/rev-manifest.json && echo '{}' >> server/rev-manifest.json",
"build": "gulp build", "build": "NODE_ENV=production gulp build -p",
"start": "babel-node server/server.js", "start": "babel-node server/server.js",
"prestart-production": "bower cache clean && bower install && gulp build", "prestart-production": "bower cache clean && bower install && gulp build",
"start-production": "node pm2Start", "start-production": "node pm2Start",
@ -68,6 +68,7 @@
"gulp-reduce-file": "0.0.1", "gulp-reduce-file": "0.0.1",
"gulp-rev": "^6.0.1", "gulp-rev": "^6.0.1",
"gulp-rev-replace": "~0.4.2", "gulp-rev-replace": "~0.4.2",
"gulp-uglify": "^1.5.1",
"gulp-util": "^3.0.6", "gulp-util": "^3.0.6",
"gulp-webpack": "^1.5.0", "gulp-webpack": "^1.5.0",
"helmet": "~0.14.0", "helmet": "~0.14.0",
@ -117,7 +118,8 @@
"url-regex": "^3.0.0", "url-regex": "^3.0.0",
"validator": "^4.2.1", "validator": "^4.2.1",
"webpack": "^1.9.12", "webpack": "^1.9.12",
"xss-filters": "^1.2.6" "xss-filters": "^1.2.6",
"yargs": "^3.30.0"
}, },
"devDependencies": { "devDependencies": {
"blessed": "~0.1.81", "blessed": "~0.1.81",

View File

@ -1,4 +1,7 @@
var path = require('path'); var path = require('path');
var webpack = require('webpack');
var __DEV__ = process.env.NODE_ENV !== 'production';
module.exports = { module.exports = {
entry: './client', entry: './client',
@ -27,5 +30,12 @@ module.exports = {
} }
] ]
}, },
plugins: [] plugins: [
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify(__DEV__ ? 'development' : 'production')
},
'__DEVTOOLS__': !__DEV__
})
]
}; };