Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 5580 | Rev 5674 | 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",
5647 stevensc 27
  },
28
  industries: {
29
    entry: "./react-webpack/settings/industries/index.js",
30
    output: path.join(__dirname, "public/react-bundles/settings/industries"),
31
    filename: "industriesBundle.js",
4586 stevensc 32
  }
33
};
34
 
35
// change active path here
5647 stevensc 36
const currentPath = paths.industries;
4586 stevensc 37
 
38
module.exports = {
39
  entry: currentPath.entry,
40
  output: {
41
    path: currentPath.output,
42
    filename: currentPath.filename,
43
  },
44
  watch: isDevelopment ? true : false,
45
  mode: isDevelopment ? "development" : "production",
46
  resolve: {
47
    extensions: [".js", ".jsx", ".scss"],
48
  },
49
  module: {
50
    rules: [
51
      {
52
        test: /(js|jsx)$/,
53
        use: ["babel-loader"],
54
        exclude: /node_modules/,
55
      },
56
      {
57
        test: /\.css$/i,
58
        use: [MiniCssExtractPlugin.loader, "css-loader"],
59
      },
60
      {
61
        test: /\.module\.s(a|c)ss$/,
62
        use: [
63
          MiniCssExtractPlugin.loader,
64
          {
65
            loader: "css-loader",
66
            options: {
67
              modules: {
68
                localIdentName: "[local]--[hash:base64:5]",
69
              },
70
              sourceMap: isDevelopment,
71
            },
72
          },
73
          {
74
            loader: "sass-loader",
75
            options: {
76
              sourceMap: isDevelopment,
77
            },
78
          },
79
        ],
80
      },
81
      {
82
        test: /\.s(a|c)ss$/,
83
        exclude: /\.module.(s(a|c)ss)$/,
84
        use: [
85
          MiniCssExtractPlugin.loader,
86
          "css-loader",
87
          {
88
            loader: "sass-loader",
89
            options: {
90
              sourceMap: isDevelopment,
91
            },
92
          },
93
        ],
94
      },
95
    ],
96
  },
97
  plugins: [
98
    new MiniCssExtractPlugin({
99
      filename: "[name].css",
100
      chunkFilename: "[id].css",
101
    }),
102
  ],
103
  optimization: {
104
    minimizer: [
105
      new TerserPlugin({
106
        extractComments: false,
107
      }),
108
    ],
109
  },
110
};