72 lines
1.6 KiB
JavaScript
72 lines
1.6 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: {
|
|
rules: [
|
|
{
|
|
test: /\.jsx?$/,
|
|
exclude: /node_modules/,
|
|
use: {
|
|
loader: "babel-loader",
|
|
options: {
|
|
presets: ["env", "react", "stage-2"]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
test: /\.less$/,
|
|
use: [{
|
|
loader: "style-loader" // creates style nodes from JS strings
|
|
}, {
|
|
loader: "css-loader" // translates CSS into CommonJS
|
|
}, {
|
|
loader: "less-loader" // compiles Less to CSS
|
|
}]
|
|
},
|
|
{
|
|
test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
|
use: [{
|
|
loader: "url-loader?limit=10000&mimetype=application/font-woff"
|
|
}]
|
|
},
|
|
{
|
|
test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
|
|
use: [{
|
|
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;
|