mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 14:17:22 +01:00
feat: pre-compile babel when used in production
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -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*
|
||||||
|
|||||||
2
Procfile
2
Procfile
@@ -1 +1 @@
|
|||||||
web: node ./website/src/server.js
|
web: node ./website/transpiled-babel/server.js
|
||||||
|
|||||||
7
common/browserify.js
Normal file
7
common/browserify.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
var shared = require('./script/index');
|
||||||
|
var _ = require('lodash');
|
||||||
|
var moment = require('moment');
|
||||||
|
|
||||||
|
window.habitrpgShared = shared;
|
||||||
|
window._ = _;
|
||||||
|
window.moment = moment;
|
||||||
@@ -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);
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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 }]],
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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');
|
||||||
|
|||||||
Reference in New Issue
Block a user