Skip to content

Instantly share code, notes, and snippets.

@wyqydsyq
Created July 21, 2016 04:45
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 wyqydsyq/0fc1218d8a7f6e51f6b702c8524e020c to your computer and use it in GitHub Desktop.
Save wyqydsyq/0fc1218d8a7f6e51f6b702c8524e020c to your computer and use it in GitHub Desktop.
Loaders being bundled
var webpack = require('webpack'),
path = require('path'),
CopyWebpackPlugin = require('copy-webpack-plugin'),
webpackEnv = require('webpack-env'),
fs = require('fs');
nodeExternals = require('webpack-node-externals'),
externals = nodeExternals();
var config = {
context: path.resolve(__dirname),
devtool: 'source-map',
plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.NoErrorsPlugin(),
new webpack.DefinePlugin(webpackEnv.definitions)
],
module: {
loaders: [
{
test: /\.js$/,
exclude: /(node_modules|\.tmp|webpack)/,
loader: 'babel'
},
{
test: /\.node$/,
loader: 'node'
},
{
test: /\.less$|\.css$/,
loader: 'style!css?camelCase&minimize&discardDuplicates&-import&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!less'
},
{
test: /\.jpe?g$|\.gif$|\.png$|\.wav$|\.mp3$/,
loader: 'url?limit=100000'
},
{
test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,
loader: "url?limit=10000&mimetype=application/font-woff"
},
{
test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
loader: "url?limit=10000&mimetype=application/font-woff"
},
{
test: /\.ttf(\?v=\d+\.\d+\.\d+)?/,
loader: "url?limit=10000&mimetype=application/octet-stream"
},
{
test: /\.eot(\?v=\d+\.\d+\.\d+)?/,
loader: "file"
},
{
test: /\.svg(\?v=\d+\.\d+\.\d+)?/,
loader: "url?limit=10000&mimetype=image/svg+xml"
},
{
test: /\.json$/,
loader: 'json'
}
]
},
resolve: {
modulesDirectories: ['node_modules', 'src/ui', 'assets'],
extensions: ['', '.js', '.node', '.less', '.json']
},
assets: {}
};
var client = Object.assign({}, config, {
entry: [
'./src/client.js',
'webpack-hot-middleware/client'
],
target: 'web',
output: {
path: path.resolve(__dirname, '.tmp/'),
publicPath: '/',
filename: 'client.js'
}
});
var server = Object.assign({}, config, {
entry: [
'./src/server.js'
],
target: 'node',
output: {
path: path.resolve(__dirname, '.tmp/'),
publicPath: '/',
filename: 'server.js',
libraryTarget: 'commonjs'
},
externals: [externals]
});
module.exports = [client, server];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment