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
website/public/gen
website/public/common
website/transpiled-babel/
common/transpiled-babel/
node_modules
*.swp
.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 _ = require('lodash');
var moment = require('moment');
var pathToCommon;
if (typeof window !== 'undefined') {
window.habitrpgShared = module.exports;
window._ = _;
window.moment = moment;
if (process.env.NODE_ENV === 'production') {
pathToCommon = './transpiled-babel/index';
} else {
pathToCommon = './script/index';
}
module.exports = require(pathToCommon);

View File

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

View File

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

View File

@@ -1,4 +1,5 @@
import gulp from 'gulp';
import babel from 'gulp-babel';
require('gulp-grunt')(gulp);
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.start('grunt-build:dev', done);
});
@@ -17,6 +32,6 @@ gulp.task('build:dev:watch', ['build:dev'], () => {
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);
});

View File

@@ -1,4 +1,6 @@
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
var cluster = require("cluster");
var _ = require('lodash');