-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathwebpack.config.js
More file actions
108 lines (102 loc) · 2.84 KB
/
webpack.config.js
File metadata and controls
108 lines (102 loc) · 2.84 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
var fs = require('fs')
var path = require('path')
var webpack = require('webpack')
var node_modules = fs.readdirSync('node_modules').filter(function(x) { return x !== '.bin' })
var devFlagPlugin = new webpack.DefinePlugin({
__DEV__: JSON.stringify(JSON.parse(process.env.DEBUG || 'false'))
})
var ignoreModules = [ 'wcjs-player', 'wcjs-prebuilt', 'peerflix', 'read-torrent', 'torrent-health', 'q' ]
var config = {
entry : [
'webpack-dev-server/client?http://localhost:3000',
'webpack/hot/only-dev-server',
'./js/index.jsx'
],
output : {
path : __dirname + '/static/',
publicPath: 'http://localhost:3000/static/',
filename : 'bundle.js',
hot : true
},
resolveLoader: {
fallback: path.join(__dirname, 'node_modules')
},
plugins : [
new webpack.HotModuleReplacementPlugin(),
new webpack.NoErrorsPlugin(),
devFlagPlugin
],
externals : function(context, request, cb) {
if(node_modules.indexOf(request) !== -1) {
var modules = ignoreModules.filter(function(ignoreModule) {
return request.indexOf(ignoreModule) !== -1
})
if(modules.length > 0) {
cb(null, 'commonjs ' + request)
return
}
}
cb()
},
module : {
loaders: [
{
test : /\.jsx$/,
loaders: [ 'react-hot', 'babel' ],
exclude: /node_modules/
},
{
test : /\.js$/,
loaders: [ 'babel' ],
exclude: /node_modules/,
include: __dirname
},
{
test : /\.js$/,
loaders: [ 'react-hot', 'babel' ],
include: path.join(__dirname, 'node_modules', 'redux-devtools', 'src')
},
{
test : /\.css$/,
loader: 'style-loader!css-loader!cssnext-loader'
},
{
test : /\.png$/,
loader: 'file-loader?limit=10000&minetype=image/png'
},
{
test : /\.jpg$/,
loader: 'file-loader?limit=10000&minetype=image/jpg'
},
{
test : /\.gif$/,
loader: 'file-loader'
},
{
test : /\.woff($|\?)/,
loader: 'url-loader?limit=10000&mimetype=application/font-woff'
},
{
test : /\.ttf($|\?)/,
loader: 'url-loader?limit=10000&mimetype=application/octet-stream'
},
{
test : /\.eot($|\?)/,
loader: 'file-loader'
},
{
test : /\.svg($|\?)/,
loader: 'url-loader?limit=10000&mimetype=image/svg+xml'
}
]
},
resolve : {
alias : {
'redux-devtools/lib': path.join(__dirname, 'node_modules', 'redux-devtools', 'src'),
'redux-devtools' : path.join(__dirname, 'node_modules', 'redux-devtools', 'src'),
react : path.join(__dirname, 'node_modules', 'react')
},
extensions: [ '', '.jsx', '.js', '.json' ]
}
}
module.exports = config