feat: pre-compile babel when used in production

This commit is contained in:
Blade Barringer
2016-03-03 18:25:01 -06:00
parent 8c6d8163bc
commit 9447a6ce10
8 changed files with 38 additions and 11 deletions

2
.gitignore vendored
View File

@@ -1,6 +1,8 @@
.DS_Store .DS_Store
website/public/gen website/public/gen
website/public/common website/public/common
website/transpiled-babel/
common/transpiled-babel/
node_modules node_modules
*.swp *.swp
.idea* .idea*

View File

@@ -1 +1 @@
web: node ./website/src/server.js web: node ./website/transpiled-babel/server.js

7
common/browserify.js Normal file
View File

@@ -0,0 +1,7 @@
var shared = require('./script/index');
var _ = require('lodash');
var moment = require('moment');
window.habitrpgShared = shared;
window._ = _;
window.moment = moment;

View File

@@ -1,9 +1,9 @@
module.exports = require('./script/index'); var pathToCommon;
var _ = require('lodash');
var moment = require('moment');
if (typeof window !== 'undefined') { if (process.env.NODE_ENV === 'production') {
window.habitrpgShared = module.exports; pathToCommon = './transpiled-babel/index';
window._ = _; } else {
window.moment = moment; pathToCommon = './script/index';
} }
module.exports = require(pathToCommon);

View File

@@ -35,6 +35,7 @@
"grunt-hashres": "~0.4.1", "grunt-hashres": "~0.4.1",
"grunt-karma": "~0.12.1", "grunt-karma": "~0.12.1",
"gulp": "^3.9.0", "gulp": "^3.9.0",
"gulp-babel": "^6.1.2",
"gulp-eslint": "^1.0.0", "gulp-eslint": "^1.0.0",
"gulp-grunt": "^0.5.2", "gulp-grunt": "^0.5.2",
"gulp-imagemin": "^2.3.0", "gulp-imagemin": "^2.3.0",

View File

@@ -8,7 +8,7 @@ import babel from 'babelify';
gulp.task('browserify', function () { gulp.task('browserify', function () {
let bundler = browserify({ let bundler = browserify({
entries: './common/index.js', entries: './common/browserify.js',
debug: true, debug: true,
transform: [[babel, { compact: false }]], transform: [[babel, { compact: false }]],
}); });

View File

@@ -1,4 +1,5 @@
import gulp from 'gulp'; import gulp from 'gulp';
import babel from 'gulp-babel';
require('gulp-grunt')(gulp); require('gulp-grunt')(gulp);
gulp.task('build', () => { gulp.task('build', () => {
@@ -9,6 +10,20 @@ gulp.task('build', () => {
} }
}); });
gulp.task('build:src', () => {
return gulp.src('website/src/**/*.js')
.pipe(babel())
.pipe(gulp.dest('website/transpiled-babel/'));
});
gulp.task('build:common', () => {
return gulp.src('common/script/**/*.js')
.pipe(babel())
.pipe(gulp.dest('common/transpiled-babel/'));
});
gulp.task('build:server', ['build:src', 'build:common']);
gulp.task('build:dev', ['browserify', 'prepare:staticNewStuff'], (done) => { gulp.task('build:dev', ['browserify', 'prepare:staticNewStuff'], (done) => {
gulp.start('grunt-build:dev', done); gulp.start('grunt-build:dev', done);
}); });
@@ -17,6 +32,6 @@ gulp.task('build:dev:watch', ['build:dev'], () => {
gulp.watch(['website/public/**/*.styl', 'common/script/*']); gulp.watch(['website/public/**/*.styl', 'common/script/*']);
}); });
gulp.task('build:prod', ['browserify', 'prepare:staticNewStuff'], (done) => { gulp.task('build:prod', ['browserify', 'build:server', 'prepare:staticNewStuff'], (done) => {
gulp.start('grunt-build:prod', done); gulp.start('grunt-build:prod', done);
}); });

View File

@@ -1,4 +1,6 @@
require('babel-register'); if (process.env.NODE_ENV !== 'production') {
require('babel-register');
}
// Only do the minimal amount of work before forking just in case of a dyno restart // Only do the minimal amount of work before forking just in case of a dyno restart
var cluster = require("cluster"); var cluster = require("cluster");
var _ = require('lodash'); var _ = require('lodash');