UNPKG

3.44 kBJavaScriptView Raw
1/* global __dirname */
2
3var path = require('path');
4var webpack = require('webpack');
5var UglifyJsPlugin = webpack.optimize.UglifyJsPlugin;
6var fs = require('fs');
7
8var dir_js = path.resolve(__dirname, 'src');
9var dir_build = path.resolve(__dirname, 'dist');
10
11var libraryName = 'kero';
12
13var data = fs.readFileSync('./package.json', 'utf8');
14var packageObj = JSON.parse(data);
15var headerStr = '';
16headerStr += packageObj.name + ' v' + packageObj.version + '\r\n';
17headerStr += packageObj.description + '\r\n';
18headerStr += 'author : ' + packageObj.author + '\r\n';
19headerStr += 'homepage : ' + packageObj.homepage + '\r\n';
20headerStr += 'bugs : ' + packageObj.bugs.url;
21var plugins = [new webpack.BannerPlugin(headerStr),
22 new webpack.LoaderOptionsPlugin({
23 minimize: true
24 }),
25 new webpack.NoErrorsPlugin()
26]
27
28var returnFUn = function(env) {
29 var mode = env.mode,
30 outputFile;
31
32 if (mode == 'build') {
33 outputFile = libraryName + '.min.js';
34 plugins.push(new webpack.optimize.UglifyJsPlugin({
35 mangle: true,
36 beautify: true
37 }))
38 plugins.push(new UglifyJsPlugin({
39 minimize: true
40 }));
41 } else {
42 outputFile = libraryName + '.js';
43 plugins.push(new webpack.optimize.UglifyJsPlugin({
44 mangle: false,
45 beautify: true
46 }))
47 }
48
49 var obj = {
50 entry: path.resolve(dir_js, 'index.js'),
51 output: {
52 path: dir_build,
53 filename: outputFile
54 },
55 devServer: {
56 contentBase: dir_build,
57 },
58 module: {
59 loaders: [{
60 loader: 'babel-loader',
61 test: dir_js,
62 query: {
63 //presets: ['es2015'],
64
65 // All of the plugins of babel-preset-es2015,
66 // minus babel-plugin-transform-es2015-modules-commonjs
67 plugins: [
68 'transform-es2015-template-literals',
69 'transform-es2015-literals',
70 'transform-es2015-function-name',
71 'transform-es2015-arrow-functions',
72 'transform-es2015-block-scoped-functions',
73 'transform-es2015-classes',
74 'transform-es2015-object-super',
75 'transform-es2015-shorthand-properties',
76 'transform-es2015-computed-properties',
77 'transform-es2015-for-of',
78 'transform-es2015-sticky-regex',
79 'transform-es2015-unicode-regex',
80 'check-es2015-constants',
81 'transform-es2015-spread',
82 'transform-es2015-parameters',
83 'transform-es2015-destructuring',
84 'transform-es2015-block-scoping',
85 'transform-es2015-typeof-symbol', ['transform-regenerator', {
86 async: false,
87 asyncGenerators: false
88 }],
89 ],
90 },
91 }]
92 },
93 plugins: plugins,
94 stats: {
95 // Nice colored output
96 colors: true
97 },
98 // Create source maps for the bundle
99 devtool: 'source-map',
100 }
101 return obj;
102}
103module.exports = returnFUn;