-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.config.prop.js
68 lines (54 loc) · 1.62 KB
/
webpack.config.prop.js
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
const webpack = require('atool-build/lib/webpack');
var path = require('path');
const packageName = require(path.join(process.cwd(), 'package.json')).name;
const entry = './src/index.tsx';
module.exports = function (webpackConfig) {
webpackConfig.entry = Object.assign({}, webpackConfig.entry, {
['index.min']: entry,
});
webpackConfig.externals = {
react: {
root: 'React',
commonjs2: 'react',
commonjs: 'react',
amd: 'react',
},
'react-dom': {
root: 'ReactDOM',
commonjs2: 'react-dom',
commonjs: 'react-dom',
amd: 'react-dom',
},
};
webpackConfig.output = {
path: path.resolve(__dirname, './dist'),
filename: '[name].js',
library: packageName,
libraryTarget: 'umd',
};
webpackConfig.plugins.some(function (plugin, i) {
if (plugin instanceof webpack.optimize.CommonsChunkPlugin) {
webpackConfig.plugins.splice(i, 1);
return true;
}
});
const uncompressedWebpackConfig = Object.assign({}, webpackConfig);
uncompressedWebpackConfig.entry = {
[`index`]: entry,
};
uncompressedWebpackConfig.plugins = webpackConfig.plugins.filter((plugin) => {
const ret = !(plugin instanceof webpack.optimize.UglifyJsPlugin);
return ret;
});
uncompressedWebpackConfig.plugins = uncompressedWebpackConfig.plugins.filter((plugin) => {
const ret = !(plugin instanceof webpack.DefinePlugin);
return ret;
});
uncompressedWebpackConfig.plugins.push(new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('development'),
}));
return [
webpackConfig,
uncompressedWebpackConfig,
];
};