71 lines
2.0 KiB
JavaScript
71 lines
2.0 KiB
JavaScript
const gulp = require('gulp');
|
|
const browserify = require('browserify');
|
|
const buffer = require('vinyl-buffer');
|
|
const sourcemaps = require('gulp-sourcemaps');
|
|
const uglify = require('gulp-uglify');
|
|
const gulpUtil = require('gulp-util');
|
|
const notify = require('gulp-notify');
|
|
const source = require('vinyl-source-stream');
|
|
|
|
const isDev = typeof process.env.npm_config_development !== 'undefined';
|
|
|
|
const PATHS = {
|
|
JS_SRC: './client/src',
|
|
JS_DIST: './client/dist',
|
|
};
|
|
|
|
const browserifyOptions = {
|
|
debug: true,
|
|
paths: [PATHS.JS_SRC],
|
|
};
|
|
|
|
const babelifyOptions = {
|
|
presets: ['es2015', 'es2015-ie', 'react'],
|
|
plugins: ['transform-object-assign', 'transform-object-rest-spread'],
|
|
ignore: /(node_modules|thirdparty)/,
|
|
comments: false,
|
|
};
|
|
|
|
const uglifyOptions = {
|
|
mangle: false,
|
|
};
|
|
|
|
gulp.task('build', ['bundle']);
|
|
|
|
gulp.task('bundle', ['bundle-legacy']);
|
|
|
|
gulp.task('bundle-legacy', function bundleLeftAndMain() {
|
|
const bundleFileName = 'bundle-legacy.js';
|
|
|
|
return browserify(Object.assign({}, browserifyOptions,
|
|
{ entries: `${PATHS.JS_SRC}/bundles/legacy.js` }
|
|
))
|
|
.on('update', bundleLeftAndMain)
|
|
.on('log', (msg) =>
|
|
gulpUtil.log('Finished', `bundled ${bundleFileName} ${msg}`)
|
|
)
|
|
.transform('babelify', babelifyOptions)
|
|
.external('config')
|
|
.external('jQuery')
|
|
.external('i18n')
|
|
.external('i18nx')
|
|
.external('react')
|
|
.external('react-dom')
|
|
.external('components/FormBuilder/FormBuilder')
|
|
.bundle()
|
|
.on('update', bundleLeftAndMain)
|
|
.on('error', notify.onError({ message: `${bundleFileName}: <%= error.message %>` }))
|
|
.pipe(source(bundleFileName))
|
|
.pipe(buffer())
|
|
.pipe(sourcemaps.init({ loadMaps: true }))
|
|
.pipe(uglify(uglifyOptions))
|
|
.pipe(sourcemaps.write('./'))
|
|
.pipe(gulp.dest(PATHS.JS_DIST));
|
|
});
|
|
|
|
gulp.task('default', ['build'], () => {
|
|
if (isDev) {
|
|
gulp.watch(`${PATHS.JS_SRC}/**/*.js`, ['build']);
|
|
}
|
|
});
|