Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 4799 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
4586 stevensc 1
const path = require("path");
2
const isDevelopment = process.env.NODE_ENV === "development";
3
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
4
const TerserPlugin = require("terser-webpack-plugin");
5
 
6
// Add paths while bundling
7
const paths = {
8
  menu: {
9
    entry: "./react-webpack/menu/index.js",
10
    output: path.join(__dirname, "public/react-bundles/menu"),
11
    filename: "menuBundle.js",
12
  }
13
};
14
 
15
// change active path here
16
const currentPath = paths.menu;
17
 
18
module.exports = {
19
  entry: currentPath.entry,
20
  output: {
21
    path: currentPath.output,
22
    filename: currentPath.filename,
23
  },
24
  watch: isDevelopment ? true : false,
25
  mode: isDevelopment ? "development" : "production",
26
  resolve: {
27
    extensions: [".js", ".jsx", ".scss"],
28
  },
29
  module: {
30
    rules: [
31
      {
32
        test: /(js|jsx)$/,
33
        use: ["babel-loader"],
34
        exclude: /node_modules/,
35
      },
36
      {
37
        test: /\.css$/i,
38
        use: [MiniCssExtractPlugin.loader, "css-loader"],
39
      },
40
      {
41
        test: /\.module\.s(a|c)ss$/,
42
        use: [
43
          MiniCssExtractPlugin.loader,
44
          {
45
            loader: "css-loader",
46
            options: {
47
              modules: {
48
                localIdentName: "[local]--[hash:base64:5]",
49
              },
50
              sourceMap: isDevelopment,
51
            },
52
          },
53
          {
54
            loader: "sass-loader",
55
            options: {
56
              sourceMap: isDevelopment,
57
            },
58
          },
59
        ],
60
      },
61
      {
62
        test: /\.s(a|c)ss$/,
63
        exclude: /\.module.(s(a|c)ss)$/,
64
        use: [
65
          MiniCssExtractPlugin.loader,
66
          "css-loader",
67
          {
68
            loader: "sass-loader",
69
            options: {
70
              sourceMap: isDevelopment,
71
            },
72
          },
73
        ],
74
      },
75
    ],
76
  },
77
  plugins: [
78
    new MiniCssExtractPlugin({
79
      filename: "[name].css",
80
      chunkFilename: "[id].css",
81
    }),
82
  ],
83
  optimization: {
84
    minimizer: [
85
      new TerserPlugin({
86
        extractComments: false,
87
      }),
88
    ],
89
  },
90
};