Skip to content

Instantly share code, notes, and snippets.

@jeffhandley
Last active September 19, 2016 04:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeffhandley/0b8da2b131b280a4eadd65d8af41b4db to your computer and use it in GitHub Desktop.
Save jeffhandley/0b8da2b131b280a4eadd65d8af41b4db to your computer and use it in GitHub Desktop.
webpack configs
{
"scripts": {
"build:core": "babel src -d lib && webpack",
"build": "NODE_ENV=production npm run build:core",
"postbuild": "echo 'Build Complete'",
"predev": "webpack --config webpack.dev.config.babel.js",
"dev": "NODE_ENV=development babel-node src/server",
"start": "nodemon --watch src/ -e js,jsx --exec npm run dev"
},
"devDependencies": {
"babel-cli": "^6.6.0",
"babel-core": "^6.6.0",
"nodemon": "^1.8.1",
"webpack": "^1.13.1",
"webpack-dev-server": "^1.14.1",
"webpack-merge": "^0.14.0"
}
}
import path from 'path';
import webpack from 'webpack';
export default {
devServer: {
contentBase: './lib/client/'
},
devtool: 'source-map',
entry: {
'pages/travelwizard/transit': './src/pages/travelwizard/transit.js',
'pages/travelwizard/hotel': './src/pages/travelwizard/hotel.js',
'pages/travelwizard/car': './src/pages/travelwizard/car.js',
'pages/travelwizard/ground': './src/pages/travelwizard/ground.js',
'pages/checkout/flight': './src/pages/checkout/flight/client.js'
},
externals: {
'react': 'React',
'react-dom': 'ReactDOM'
},
output: {
path: path.join(__dirname, './lib/client'),
filename: '[name].js',
publicPath: '/nui/travel/client'
},
plugins: [
new webpack.DefinePlugin({
__DEVTOOLS__: process.env.NODE_ENV === 'development',
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
})
],
resolve: {
extensions: ['', '.js', '.jsx', '.json']
},
module: {
loaders: [
{
test: [/\.jsx?$/, /\.json/],
loaders: ['babel'],
exclude: /node_modules/
},
{
test: /\.json$/,
loaders: ['json-loader']
}
]
}
};
import dev from './webpack.dev.config.babel';
import prod from './webpack.prod.config.babel';
export default [dev, prod];
import webpack from 'webpack';
import base from './webpack.base.config.babel';
import merge from 'webpack-merge';
export default merge(base, {
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: 'common',
filename: 'common.js'
})
]
});
import webpack from 'webpack';
import base from './webpack.base.config.babel';
import merge from 'webpack-merge';
export default merge(base, {
output: {
filename: '[name].min.js'
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: 'common',
filename: 'common.min.js'
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
})
]
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment