Proyectos de Subversion LeadersLinked - Backend

Rev

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