1 | var webpack = require('webpack');
|
2 | var UglifyJsPlugin = webpack.optimize.UglifyJsPlugin;
|
3 | var path = require('path');
|
4 | var env = require('yargs').argv.mode;
|
5 | var fs = require('fs');
|
6 |
|
7 | var libraryName = 'kero';
|
8 |
|
9 | var data = fs.readFileSync('./package.json', 'utf8');
|
10 | var packageObj = JSON.parse(data);
|
11 | var headerStr = '';
|
12 | headerStr += packageObj.name + ' v' + packageObj.version + '\r\n';
|
13 | headerStr += packageObj.description + '\r\n';
|
14 | headerStr += 'author : ' + packageObj.author + '\r\n';
|
15 | headerStr += 'homepage : ' + packageObj.homepage + '\r\n';
|
16 | headerStr += 'bugs : ' + packageObj.bugs.url;
|
17 | var plugins = [new webpack.BannerPlugin(headerStr)],
|
18 | outputFile;
|
19 |
|
20 | if(env === 'build') {
|
21 | plugins.push(new UglifyJsPlugin({
|
22 | minimize: true
|
23 | }));
|
24 | outputFile = libraryName + '.min.js';
|
25 | } else {
|
26 | outputFile = libraryName + '.js';
|
27 | }
|
28 |
|
29 | var config = {
|
30 | entry: __dirname + '/src/index.js',
|
31 |
|
32 | output: {
|
33 | path: __dirname + '/dist/js',
|
34 | filename: outputFile,
|
35 |
|
36 | libraryTarget: 'var',
|
37 | umdNamedDefine: true
|
38 | },
|
39 | module: {
|
40 | loaders: [{
|
41 | test: /(\.jsx|\.js)$/,
|
42 | loader: 'babel',
|
43 | exclude: /(bower_components)/
|
44 | }, {
|
45 | test: /(\.jsx|\.js)$/,
|
46 | loader: "eslint-loader",
|
47 | exclude: /node_modules/
|
48 | }]
|
49 | },
|
50 | resolve: {
|
51 | root: path.resolve('./src'),
|
52 | extensions: ['', '.js']
|
53 | },
|
54 | plugins: plugins
|
55 | };
|
56 |
|
57 | module.exports = config;
|