Skip to content

Commit 1b58489

Browse files
committed
Merge pull request react-bootstrap#691 from AlexKVal/wpCnf
Get under control webpack config files.
2 parents 115412e + 2a1d7f6 commit 1b58489

14 files changed

+121
-281
lines changed

ie8/package.json

Lines changed: 0 additions & 14 deletions
This file was deleted.

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@
1515
"docs-build": "babel-node tools/build-cli.js --docs-only",
1616
"docs": "docs/dev-run",
1717
"docs-prod": "npm run docs-build && NODE_ENV=production babel-node docs/server.js",
18-
"docs-prod-unoptimized": "npm run docs-build -- --dev && NODE_ENV=production babel-node docs/server.js",
19-
"ie8": "babel-node ie8/server.js"
18+
"docs-prod-unoptimized": "npm run docs-build -- --dev && NODE_ENV=production babel-node docs/server.js"
2019
},
2120
"main": "lib/index.js",
2221
"directories": {
@@ -87,4 +86,4 @@
8786
"dependencies": {
8887
"classnames": "^2.0.0"
8988
}
90-
}
89+
}

webpack.config.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
/* eslint no-var: 0 */
22
require('babel/register');
33
var config = require('./webpack/webpack.config');
4-
var result = config();
5-
module.exports = result;
4+
module.exports = config;

webpack/base.config.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import webpack from 'webpack';
2+
import yargs from 'yargs';
3+
4+
export const options = yargs
5+
.alias('p', 'optimize-minimize')
6+
.alias('d', 'debug')
7+
.option('port', {
8+
default: '8080',
9+
type: 'string'
10+
})
11+
.argv;
12+
13+
export const jsLoader = 'babel';
14+
15+
const baseConfig = {
16+
entry: undefined,
17+
18+
output: undefined,
19+
20+
externals: undefined,
21+
22+
module: {
23+
loaders: [
24+
{ test: /\.js/, loader: jsLoader, exclude: /node_modules/ }
25+
]
26+
},
27+
28+
plugins: [
29+
new webpack.DefinePlugin({
30+
'process.env': {
31+
'NODE_ENV': JSON.stringify(options.optimizeMinimize ? 'production' : 'development')
32+
}
33+
})
34+
]
35+
};
36+
37+
if (options.optimizeMinimize) {
38+
baseConfig.devtool = 'source-map';
39+
}
40+
41+
export default baseConfig;

webpack/docs.config.js

Lines changed: 44 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,47 @@
1-
import config from './webpack.config';
2-
import yargs from 'yargs';
1+
import _ from 'lodash';
2+
import webpack from 'webpack';
3+
import ExtractTextPlugin from 'extract-text-webpack-plugin';
4+
import baseConfig, { options, jsLoader } from './base.config';
35

4-
const argv = yargs
5-
.alias('p', 'optimize-minimize')
6-
.alias('d', 'debug')
7-
.option('port', {
8-
default: '8080',
9-
type: 'string'
10-
})
11-
.argv;
6+
const webpackDevServerAddress = `http://localhost:${options.port}`;
7+
const cssSourceMap = options.debug ? '?sourceMap' : '';
8+
const reactHot = options.debug ? 'react-hot!' : '';
129

13-
export default config({
14-
docs: true,
15-
development: argv.debug,
16-
optimize: argv.optimizeMinimize,
17-
port: parseInt(argv.port)
10+
const entryFile = './docs/client.js';
11+
const devEntryBundle = [
12+
'webpack/hot/dev-server',
13+
`webpack-dev-server/client?${webpackDevServerAddress}`,
14+
entryFile
15+
];
16+
17+
baseConfig.plugins.push(new ExtractTextPlugin('[name].css'));
18+
if (options.debug) {
19+
baseConfig.plugins.push(new webpack.NoErrorsPlugin());
20+
}
21+
22+
export default _.extend({}, baseConfig, {
23+
entry: {
24+
bundle: options.debug ? devEntryBundle : entryFile
25+
},
26+
27+
output: {
28+
filename: '[name].js',
29+
path: './docs-built/assets',
30+
publicPath: options.debug ? `${webpackDevServerAddress}/assets/` : '/assets/'
31+
},
32+
33+
module: {
34+
noParse: /babel-core\/browser/,
35+
loaders: [
36+
{ test: /\.js/, loader: `${reactHot}${jsLoader}`, exclude: /node_modules|Samples\.js/ },
37+
{ test: /Samples.js/, loader: `${reactHot}transform?brfs!${jsLoader}` },
38+
{ test: /\.css/,
39+
loader: ExtractTextPlugin.extract('style', `css${cssSourceMap}`) },
40+
{ test: /\.less$/,
41+
loader: ExtractTextPlugin.extract('style', `css${cssSourceMap}!less${cssSourceMap}`) },
42+
{ test: /\.json$/, loader: 'json' },
43+
{ test: /\.jpe?g$|\.gif$|\.png|\.ico$/, loader: 'file?name=[name].[ext]' },
44+
{ test: /\.eot$|\.ttf$|\.svg$|\.woff2?$/, loader: 'file?name=[name].[ext]' }
45+
]
46+
}
1847
});

webpack/strategies/development.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

webpack/strategies/docs-development.js

Lines changed: 0 additions & 40 deletions
This file was deleted.

webpack/strategies/docs.js

Lines changed: 0 additions & 55 deletions
This file was deleted.

webpack/strategies/ie8.js

Lines changed: 0 additions & 26 deletions
This file was deleted.

webpack/strategies/index.js

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)