70 lines
1.5 KiB
JavaScript
70 lines
1.5 KiB
JavaScript
|
const path = require("path");
|
||
|
const ExtractTextPlugin = require("extract-text-webpack-plugin");
|
||
|
const CopyWebpackPlugin = require("copy-webpack-plugin");
|
||
|
const webpack = require("webpack");
|
||
|
const env = process.env.NODE_ENV || "development";
|
||
|
|
||
|
module.exports = {
|
||
|
entry: {
|
||
|
"front-js": "./app/javascripts/front.js",
|
||
|
"admin-js": "./app/javascripts/index.js",
|
||
|
"front-css": "./app/styles/index.scss",
|
||
|
"admin-css": "./app/styles/admin.scss",
|
||
|
"front-amp-css": "./app/styles/amp.scss",
|
||
|
"nav-js" : "./app/javascripts/nav.js"
|
||
|
},
|
||
|
output: {
|
||
|
path: __dirname + "/dist",
|
||
|
publicPath: "/dist/"
|
||
|
},
|
||
|
mode: env,
|
||
|
module: {
|
||
|
rules: [
|
||
|
{
|
||
|
test: /\.(js|jsx)$/,
|
||
|
exclude: /node_modules/,
|
||
|
include: path.join(__dirname, "node_modules"),
|
||
|
use: "babel-loader"
|
||
|
},
|
||
|
{
|
||
|
test: /\.(gif|jpe?g|png)$/,
|
||
|
loader: "url-loader",
|
||
|
query: {
|
||
|
limit: 10000,
|
||
|
name: "images/[name].[ext]"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
test: /\.scss$/,
|
||
|
use: ExtractTextPlugin.extract({
|
||
|
fallback: "style-loader",
|
||
|
use: [
|
||
|
{
|
||
|
loader: "css-loader?url=false"
|
||
|
},
|
||
|
{
|
||
|
loader: "sass-loader"
|
||
|
},
|
||
|
{
|
||
|
loader: "postcss-loader"
|
||
|
}
|
||
|
]
|
||
|
})
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
plugins: [
|
||
|
new webpack.DefinePlugin({
|
||
|
NODE_ENV: env
|
||
|
}),
|
||
|
new ExtractTextPlugin({
|
||
|
filename: "css/[name].css"
|
||
|
}),
|
||
|
new CopyWebpackPlugin([
|
||
|
{ from: "app/images", to: "images" },
|
||
|
{ from: "app/static", to: "images" },
|
||
|
{ from: "app/javascripts/selectize.js", to: "selectize.js" }
|
||
|
])
|
||
|
]
|
||
|
};
|