forked from botpress/botpress
-
Notifications
You must be signed in to change notification settings - Fork 0
/
webpack.js
82 lines (77 loc) · 2.23 KB
/
webpack.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
var webpack = require('webpack')
var path = require('path')
var CopyWebpackPlugin = require('copy-webpack-plugin')
var autoprefixer = require('autoprefixer')
var HardSourceWebpackPlugin = require('hard-source-webpack-plugin')
var webConfig = {
bail: true,
devtool: 'source-map',
entry: ['./src/web/index.jsx'],
output: {
path: './lib/web/js',
publicPath: '/js/',
filename: 'web.bundle.js'
},
resolve: {
extensions: ['', '.js', '.jsx', '.css'],
alias: {
'~': path.resolve(__dirname, './src/web')
}
},
plugins: [
new webpack.NoErrorsPlugin(),
new CopyWebpackPlugin([{
from: path.resolve(__dirname, './src/web/index.html'),
to: path.resolve(__dirname, './lib/web/index.html')
}, {
from: path.resolve(__dirname, './src/web/img'),
to: path.resolve(__dirname, './lib/web/img')
}]),
new HardSourceWebpackPlugin({
cacheDirectory: __dirname + '/.cache/',
recordsPath: __dirname + '/.cache/records.json',
environmentPaths: {
root: process.cwd(),
directories: ['node_modules'],
files: ['package.json', 'webpack.js'],
}
})
],
module: {
loaders: [{
test: /\.jsx?$/i,
exclude: /node_modules/i,
loader: 'babel-loader',
query: {
presets: ['latest', 'stage-0', 'react'],
plugins: ['transform-object-rest-spread', 'transform-decorators-legacy'],
compact: false,
babelrc: false
}
}, {
test: /\.scss$/,
loaders: ['style', 'css?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]', 'postcss', 'sass']
}, {
test: /\.css$/,
loaders: ['style', 'css']
}, {
test: /\.woff|\.woff2|\.svg|.eot|\.ttf/,
loader: 'file?name=../fonts/[name].[ext]'
}, {
test: /\.json$/,
loader: "json-loader"
}]
},
postcss: [ autoprefixer({ browsers: ['last 2 versions'] }) ]
}
var compiler = webpack(webConfig)
var postProcess = function(err, stats) {
if (err) throw err
console.log(stats.toString('normal'))
}
if (process.argv.indexOf('--compile') !== -1) {
compiler.run(postProcess)
} else if (process.argv.indexOf('--watch') !== -1) {
compiler.watch(null, postProcess)
}
module.exports = { web: webConfig }