canape/webpack.config.js

62 lines
1.3 KiB
JavaScript

var webpack = require("webpack");
var path = require("path");
var BUILD_DIR = path.resolve(__dirname, 'build/public/');
if (process.env.NODE_ENV === 'production') {
BUILD_DIR = path.resolve(__dirname, 'canapeapp/public/');
}
var SRC_DIR = path.resolve(__dirname, 'src/public/js');
const config = {
entry: path.join(SRC_DIR, 'app.js'),
output: {
path: BUILD_DIR,
filename: 'js/app.js',
},
module: {
loaders: [
{
test: /\.jsx?$/,
loader: 'babel-loader',
exclude: /node_modules/,
query: {
compact: false,
presets: ["es2015", "react" ]
}
},
{
test: /\.less$/,
loader: 'style-loader!css-loader!less-loader',
},
{
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: "url-loader?limit=10000&mimetype=application/font-woff"
},
{
test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: "file-loader"
}
]
},
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
})
],
resolve: {
extensions: ['', '.js', '.jsx']
},
};
if (process.env.NODE_ENV === 'production') {
config.plugins.push(
new webpack.optimize.UglifyJsPlugin()
)
} else {
config.devtool = "#cheap-module-source-map"
}
module.exports = config;