Rev 2865 | AutorÃa | Ultima modificación | Ver Log |
const path = require("path");
const isDevelopment = process.env.NODE_ENV === "development";
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const TerserPlugin = require("terser-webpack-plugin");
// const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
// change active path here
const currentPath = {
entry: "./app/index.jsx",
output: path.join(__dirname, "public/bundles"),
filename: "applicationBundle.js",
};
module.exports = {
entry: currentPath.entry,
output: {
path: currentPath.output,
filename: currentPath.filename,
},
watch: false,
mode: "production",
resolve: {
alias: {
ckeditor5: path.resolve(
__dirname,
"node_modules/ckeditor5/dist/ckeditor5.js"
),
"ckeditor5.css": path.resolve(
__dirname,
"node_modules/ckeditor5/dist/ckeditor5.css"
),
"@components": path.resolve(__dirname, "app/components/"),
"@constants": path.resolve(__dirname, "app/constants/"),
"@hocs": path.resolve(__dirname, "app/hocs/index.js"),
"@hooks": path.resolve(__dirname, "app/hooks/index.js"),
"@api": path.resolve(__dirname, "app/libs/axios.js"),
"@layouts": path.resolve(__dirname, "app/layouts/"),
"@pages": path.resolve(__dirname, "app/pages/"),
"@providers": path.resolve(__dirname, "app/providers/"),
"@store": path.resolve(__dirname, "app/redux/"),
"@styles": path.resolve(__dirname, "app/styles/"),
"@services": path.resolve(__dirname, "app/services/"),
"@utils": path.resolve(__dirname, "app/utils/"),
"@app": path.resolve(__dirname, "app/"),
store: path.resolve(__dirname, "app/redux/"),
components: path.resolve(__dirname, "app/components/"),
utils: path.resolve(__dirname, "app/utils/"),
},
extensions: [".js", ".jsx", ".scss", ".css"],
},
module: {
rules: [
{
test: /(js|jsx)$/,
use: ["babel-loader"],
exclude: /node_modules/,
},
{
test: /\.css$/i,
use: [MiniCssExtractPlugin.loader, "css-loader"],
},
{
test: /\.module\.s(a|c)ss$/,
use: [
MiniCssExtractPlugin.loader,
{
loader: "css-loader",
options: {
modules: {
localIdentName: "[local]--[hash:base64:5]",
},
sourceMap: isDevelopment,
},
},
{
loader: "sass-loader",
options: {
sourceMap: isDevelopment,
},
},
],
},
{
test: /\.s(a|c)ss$/,
exclude: /\.module.(s(a|c)ss)$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader",
{
loader: "sass-loader",
options: {
sourceMap: isDevelopment,
},
},
],
},
],
},
plugins: [
new MiniCssExtractPlugin({
filename: "[name].css",
chunkFilename: "[id].css",
}),
],
optimization: {
minimizer: [
new TerserPlugin({
extractComments: false,
}),
],
},
};