-
Notifications
You must be signed in to change notification settings - Fork 10
/
webpack.config.js
100 lines (97 loc) · 2.44 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
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
var path = require('path');
var webpack = require('webpack');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var STATIC_PATH = path.join(__dirname, './pyramid_sacrud/static/');
var JS_PATH = path.join('js');
var CSS_PATH = path.join('css');
var NODE_PATH = path.join(__dirname, 'node_modules')
config = {
debug: true,
devtool: 'source-map',
context: STATIC_PATH,
include: [path.resolve(JS_PATH)],
entry: path.join(STATIC_PATH, JS_PATH, 'src', 'main.js'),
output: {
filename: path.join(JS_PATH, 'assets', '__[name].js'),
path: STATIC_PATH,
publicPath: "../"
},
resolveLoader: {
root: NODE_PATH,
},
resolve: {
unsafeCache: true,
modulesDirectories: ['node_modules', 'bower_components'],
alias: {
'materialize-js': path.join(
NODE_PATH, '/materialize-css/bin/materialize.js'
),
'materialize-css': path.join(
NODE_PATH, '/materialize-css/bin/materialize.css'
),
jQuery: path.join(
NODE_PATH, 'jquery/src/jquery.js'
)
}
},
module: {
preLoaders: [{
test: /jquery\/src\/selector-sizzle\.js$/,
loader: 'string-replace',
query: {
search: '../external/sizzle/dist/sizzle',
replace: 'sizzle'
}
}],
loaders: [
{
test: /\.jsx?$/,
loader: 'babel?presets=es2015',
exclude: /(node_modules|bower_components)/
},
{
test: /\.css$/,
loader: ExtractTextPlugin.extract('style', 'css')
},
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract(
'style', 'css!postcss!sass'),
exclude: /(node_modules|bower_components)/
},
{
test: /\.(woff|woff2|eot|ttf)$/,
loader: 'file',
query: {
name: path.join('fonts', '/[name].[ext]')
}
},
{
test: /\.(svg|png)$/,
loader: 'file',
query: {
limit: 10000,
name: path.join('img', '/[name].[ext]')
}
}
]
},
plugins: [
new ExtractTextPlugin(path.join(CSS_PATH, '__main.css')),
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.$": "jquery",
"window.jQuery": "jquery"
})
]
}
if (process.env.NODE_ENV == 'production') {
plugins = [
new webpack.optimize.DedupePlugin(),
new webpack.optimize.UglifyJsPlugin()
]
config['plugins'].concat(plugins);
config['debug'] = false;
}
module.exports = config ;