-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathgulpfile.babel.js
More file actions
69 lines (64 loc) · 1.65 KB
/
gulpfile.babel.js
File metadata and controls
69 lines (64 loc) · 1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
"use strict";
import gulp from 'gulp';
import gulpWebpack from 'webpack-stream';
import webpack from 'webpack';
import yargs from 'yargs';
const args = yargs
.boolean('d')
.alias('e', 'env')
.default('e', 'development')
.argv
const isRelease = (args.env == 'release')
const isDevelopment = (args.env == 'development');
/**
* Webpack
*/
gulp.task('build', () => {
return gulp
.src('./smsgw/static/js/main.js')
.pipe(gulpWebpack({
cache: (isDevelopment),
watch: (isDevelopment),
devtool: (isDevelopment) ? 'eval' : '',
output: {
filename: "js/[name].js"
},
module: {
preLoaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: "eslint-loader"}
],
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' }
]
},
plugins: (() => {
let plugins = [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify((isDevelopment) ? 'development' : 'production')
},
__DEV__: (isDevelopment)
})
];
if (isRelease) {
plugins = plugins.concat([
new webpack.optimize.DedupePlugin(),
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.optimize.UglifyJsPlugin({
compress: { warnings: false },
output: { comments: false }
})
]);
}
return plugins;
})(),
eslint: {
configFile: './.eslintrc'
}
}))
.pipe(gulp.dest('./smsgw/static/build/'));
});
/**
* Default task
*/
gulp.task('default', ['build']);