Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 5573 | Rev 5647 | Ir a la última revisión | | Comparar con el anterior | 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",
4799 stevensc 12
  },
13
  companySizes: {
14
    entry: "./react-webpack/settings/company-sizes/index.js",
15
    output: path.join(__dirname, "public/react-bundles/settings/company-sizes"),
16
    filename: "companySizesBundle.js",
5318 stevensc 17
  },
18
  competencyTypes: {
19
    entry: "./react-webpack/settings/competency-types/index.js",
20
    output: path.join(__dirname, "public/react-bundles/settings/competency-types"),
21
    filename: "competencyTypesBundle.js",
5580 stevensc 22
  },
23
  groupTypes: {
24
    entry: "./react-webpack/settings/groups-types/index.js",
25
    output: path.join(__dirname, "public/react-bundles/settings/group-types"),
26
    filename: "groupTypesBundle.js",
4586 stevensc 27
  }
28
};
29
 
30
// change active path here
5580 stevensc 31
const currentPath = paths.groupTypes;
4586 stevensc 32
 
33
module.exports = {
34
  entry: currentPath.entry,
35
  output: {
36
    path: currentPath.output,
37
    filename: currentPath.filename,
38
  },
39
  watch: isDevelopment ? true : false,
40
  mode: isDevelopment ? "development" : "production",
41
  resolve: {
42
    extensions: [".js", ".jsx", ".scss"],
43
  },
44
  module: {
45
    rules: [
46
      {
47
        test: /(js|jsx)$/,
48
        use: ["babel-loader"],
49
        exclude: /node_modules/,
50
      },
51
      {
52
        test: /\.css$/i,
53
        use: [MiniCssExtractPlugin.loader, "css-loader"],
54
      },
55
      {
56
        test: /\.module\.s(a|c)ss$/,
57
        use: [
58
          MiniCssExtractPlugin.loader,
59
          {
60
            loader: "css-loader",
61
            options: {
62
              modules: {
63
                localIdentName: "[local]--[hash:base64:5]",
64
              },
65
              sourceMap: isDevelopment,
66
            },
67
          },
68
          {
69
            loader: "sass-loader",
70
            options: {
71
              sourceMap: isDevelopment,
72
            },
73
          },
74
        ],
75
      },
76
      {
77
        test: /\.s(a|c)ss$/,
78
        exclude: /\.module.(s(a|c)ss)$/,
79
        use: [
80
          MiniCssExtractPlugin.loader,
81
          "css-loader",
82
          {
83
            loader: "sass-loader",
84
            options: {
85
              sourceMap: isDevelopment,
86
            },
87
          },
88
        ],
89
      },
90
    ],
91
  },
92
  plugins: [
93
    new MiniCssExtractPlugin({
94
      filename: "[name].css",
95
      chunkFilename: "[id].css",
96
    }),
97
  ],
98
  optimization: {
99
    minimizer: [
100
      new TerserPlugin({
101
        extractComments: false,
102
      }),
103
    ],
104
  },
105
};