-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathwebpack.config.babel.js
More file actions
64 lines (60 loc) · 1.69 KB
/
Copy pathwebpack.config.babel.js
File metadata and controls
64 lines (60 loc) · 1.69 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
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const path = require('path')
const webpack = require('webpack')
const isProduction = process.env.FRIG_ENV === 'production'
const minify = process.env.FRIG_MIN === 'minify'
const minExt = minify ? '.min' : ''
if (!isProduction) {
const message = '\nPlease use npm link and the Frig examples for debugging ' +
'Frigging Bootstrap.' +
'\n\nSee the Frig\'s HACKING.md for further details.\n'
console.log(message) // eslint-disable-line no-console
process.exit()
}
const plugins = [new ExtractTextPlugin(`frigging-bootstrap${minExt}.css`)]
if (minify) {
plugins.unshift(new webpack.optimize.UglifyJsPlugin({
minimize: true,
}))
}
module.exports = {
entry: './src/js/index.js',
output: {
path: 'dist',
filename: `frigging-bootstrap${minExt}.js`,
libraryTarget: 'umd',
library: 'FriggingBootstrap',
},
externals: {
react: true,
'react-dom': true,
frig: true,
'react-addons-css-transition-group': true,
colr: true,
numeral: true,
classnames: true,
},
resolve: {
root: [path.join(__dirname, 'src', 'javascripts'), path.join(__dirname, 'src', 'stylesheets')],
},
module: {
loaders: [
{
test: /\.styl$/,
loader: 'style-loader!css-loader!stylus-loader',
}, {
test: /\.jsx?$/,
exclude: /^(node_modules|dist|scripts)/,
loader: 'babel',
query: {
presets: ['es2015', 'react', 'stage-1'],
plugins: ['babel-plugin-transform-decorators-legacy'],
},
}, {
test: /\.woff($|\?)|\.woff2($|\?)|\.ttf($|\?)|\.eot($|\?)|\.svg($|\?)/,
loader: 'url-loader',
},
],
},
plugins,
}