-
Notifications
You must be signed in to change notification settings - Fork 1
/
webpack.config.js
56 lines (54 loc) · 1.29 KB
/
webpack.config.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
var path = require('path');
var webpack = require('webpack');
var isProduction = (function() {
return process.env.NODE_ENV === 'production';
})();
var entry = './src/Slider.js',
plugins = [],
devtool = null,
externals = {
'react': 'react',
'react-dom': 'react-dom',
'redux': 'redux',
'react-redux': 'react-redux'
};
console.log(isProduction);
if (isProduction) {
entry = [
'webpack-dev-server/client?http://localhost:3000',
'webpack/hot/only-dev-server',
'./demo/example.js'
]
externals = [];
devtool = 'eval';
plugins = [new webpack.HotModuleReplacementPlugin()];
}
module.exports = {
devtool: isProduction ? 'eval' : null,
entry: {
Slider: entry
},
output: {
path: path.join(__dirname, 'lib'),
filename: '[name].js',
library: 'shared-components',
libraryTarget: 'umd',
publicPath: '/static/'
},
plugins: plugins,
module: {
loaders: [{
test: /\.js$/,
loaders: ['react-hot', 'babel'],
include: [path.join(__dirname, 'src'), path.join(__dirname, 'demo')]
}, {
test: /\.scss$/,
loaders: ['style', 'css', 'sass'],
include: path.join(__dirname, 'src')
}]
},
resolve: {
extensions: ['', '.webpack.js', '.web.js', '.js', '.scss']
},
externals: externals
};