Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15531 | Rev 15801 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
15761 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");
4586 stevensc 5
 
6
// Add paths while bundling
7
const paths = {
15761 stevensc 8
  menu: {
9
    entry: "./react-webpack/menu/index.js",
10
    output: path.join(__dirname, "public/react-bundles/menu"),
11
    filename: "menuBundle.js",
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",
17
  },
18
  hobbies: {
19
    entry: "./react-webpack/settings/hobbies-and-interests/index.js",
20
    output: path.join(
21
      __dirname,
22
      "public/react-bundles/settings/hobbies-and-interests"
23
    ),
24
    filename: "hobbiesAndInterestsBundle.js",
25
  },
26
  aptitudes: {
27
    entry: "./react-webpack/settings/aptitudes/index.js",
28
    output: path.join(__dirname, "public/react-bundles/settings/aptitudes"),
29
    filename: "aptitudesBundle.js",
30
  },
31
  competencyTypes: {
32
    entry: "./react-webpack/settings/competency-types/index.js",
33
    output: path.join(
34
      __dirname,
35
      "public/react-bundles/settings/competency-types"
36
    ),
37
    filename: "competencyTypesBundle.js",
38
  },
39
  groupTypes: {
40
    entry: "./react-webpack/settings/groups-types/index.js",
41
    output: path.join(__dirname, "public/react-bundles/settings/group-types"),
42
    filename: "groupTypesBundle.js",
43
  },
44
  industries: {
45
    entry: "./react-webpack/settings/industries/index.js",
46
    output: path.join(__dirname, "public/react-bundles/settings/industries"),
47
    filename: "industriesBundle.js",
48
  },
49
  skills: {
50
    entry: "./react-webpack/settings/skills/index.js",
51
    output: path.join(__dirname, "public/react-bundles/settings/skills"),
52
    filename: "skillsBundle.js",
53
  },
54
  degrees: {
55
    entry: "./react-webpack/settings/degrees/index.js",
56
    output: path.join(__dirname, "public/react-bundles/settings/degrees"),
57
    filename: "degreesBundle.js",
58
  },
59
  categories: {
60
    entry: "./react-webpack/settings/job-categories/index.js",
61
    output: path.join(
62
      __dirname,
63
      "public/react-bundles/settings/job-categories"
64
    ),
65
    filename: "jobCategoriesBundle.js",
66
  },
67
  profile: {
68
    entry: "./react-webpack/profile/index.js",
69
    output: path.join(__dirname, "public/react-bundles/profile"),
70
    filename: "profileBundle.js",
71
  },
72
  jobs: {
73
    entry: "./react-webpack/jobs/index.js",
74
    output: path.join(__dirname, "public/react-bundles/jobs"),
75
    filename: "jobsBundle.js",
76
  },
77
  feeds: {
78
    entry: "./react-webpack/feeds/index.js",
79
    output: path.join(__dirname, "public/react-bundles/feeds"),
80
    filename: "feedsBundle.js",
81
  },
82
  followers: {
83
    entry: "./react-webpack/follower/index.js",
84
    output: path.join(__dirname, "public/react-bundles/followers"),
85
    filename: "followersBundle.js",
86
  },
87
  recruitment_and_selection_vacancies: {
88
    entry: "./react-webpack/recruitment_and_selection/vacancies/index.js",
89
    output: path.join(
90
      __dirname,
91
      "public/react-bundles/recruitment_and_selection/vacancies"
92
    ),
93
    filename: "vacanciesBundle.js",
94
  },
95
  recruitment_and_selection_candidates: {
96
    entry: "./react-webpack/recruitment_and_selection/candidates/index.js",
97
    output: path.join(
98
      __dirname,
99
      "public/react-bundles/recruitment_and_selection/candidates"
100
    ),
101
    filename: "candidatesBundle.js",
102
  },
103
  recruitment_and_selection_interviews: {
104
    entry: "./react-webpack/recruitment_and_selection/interviews/index.js",
105
    output: path.join(
106
      __dirname,
107
      "public/react-bundles/recruitment_and_selection/interviews"
108
    ),
109
    filename: "interviewsBundle.js",
110
  },
111
  chat: {
112
    entry: "./react-webpack/chat/index.js",
113
    output: path.join(__dirname, "public/react-bundles/chat"),
114
    filename: "chatBundle.js",
115
  },
116
  mobileChat: {
117
    entry: "./react-webpack/mobile-chat/index.js",
118
    output: path.join(__dirname, "public/react-bundles/mobileChat"),
119
    filename: "mobileChatBundle.js",
120
  },
121
  objetives_and_goals_planing: {
122
    objetives: {
123
      entry: "./react-webpack/objetives_and_goals-planing/objetives/index.js",
124
      output: path.join(
125
        __dirname,
126
        "public/react-bundles/objetives_and_goals-planing/objetives"
127
      ),
128
      filename: "objetivesBundle.js",
129
    },
130
    goals: {
131
      entry: "./react-webpack/objetives_and_goals-planing/goals/index.js",
132
      output: path.join(
133
        __dirname,
134
        "public/react-bundles/objetives_and_goals-planing/goals"
135
      ),
136
      filename: "goalsBundle.js",
137
    },
138
    tasks: {
139
      entry: "./react-webpack/objetives_and_goals-planing/tasks/index.js",
140
      output: path.join(
141
        __dirname,
142
        "public/react-bundles/objetives_and_goals-planing/tasks"
143
      ),
144
      filename: "tasksBundle.js",
145
    },
146
  },
147
  performance_evaluations: {
148
    forms: {
149
      entry: "./react-webpack/performance_evaluations/forms/index.js",
150
      output: path.join(
151
        __dirname,
152
        "public/react-bundles/performance_evaluations/forms"
153
      ),
154
      filename: "formsBundle.js",
155
    },
156
    evaluations: {
157
      entry: "./react-webpack/performance_evaluations/evaluations/index.js",
158
      output: path.join(
159
        __dirname,
160
        "public/react-bundles/performance_evaluations/evaluations"
161
      ),
162
      filename: "evaluationsBundle.js",
163
    },
164
  },
165
  organizational_climate: {
166
    forms: {
167
      entry: "./react-webpack/organizational-climate/form/index.js",
168
      output: path.join(
169
        __dirname,
170
        "public/react-bundles/organizational-climate/form"
171
      ),
172
      filename: "organizationalFormBundle.js",
173
    },
174
  },
175
  jobDescription: {
176
    entry: "./react-webpack/job_description/index.js",
177
    output: path.join(__dirname, "public/react-bundles/job_description"),
178
    filename: "jobDescription.js",
179
  },
180
};
4586 stevensc 181
 
15761 stevensc 182
// change active path here
183
const currentPath = paths.chat;
4586 stevensc 184
 
185
module.exports = {
15761 stevensc 186
  entry: currentPath.entry,
187
  output: {
188
    path: currentPath.output,
189
    filename: currentPath.filename,
190
  },
191
  watch: isDevelopment ? true : false,
192
  mode: isDevelopment ? "development" : "production",
193
  resolve: {
194
    extensions: [".js", ".jsx", ".scss"],
195
  },
196
  module: {
197
    rules: [
198
      {
199
        test: /(js|jsx)$/,
200
        use: ["babel-loader"],
201
        exclude: /node_modules/,
202
      },
203
      {
204
        test: /\.css$/i,
205
        use: [MiniCssExtractPlugin.loader, "css-loader"],
206
      },
207
      {
208
        test: /\.module\.s(a|c)ss$/,
209
        use: [
210
          MiniCssExtractPlugin.loader,
211
          {
212
            loader: "css-loader",
213
            options: {
214
              modules: {
215
                localIdentName: "[local]--[hash:base64:5]",
216
              },
217
              sourceMap: isDevelopment,
218
            },
219
          },
220
          {
221
            loader: "sass-loader",
222
            options: {
223
              sourceMap: isDevelopment,
224
            },
225
          },
226
        ],
227
      },
228
      {
229
        test: /\.s(a|c)ss$/,
230
        exclude: /\.module.(s(a|c)ss)$/,
231
        use: [
232
          MiniCssExtractPlugin.loader,
233
          "css-loader",
234
          {
235
            loader: "sass-loader",
236
            options: {
237
              sourceMap: isDevelopment,
238
            },
239
          },
240
        ],
241
      },
242
    ],
243
  },
244
  plugins: [
245
    new MiniCssExtractPlugin({
246
      filename: "[name].css",
247
      chunkFilename: "[id].css",
248
    }),
249
  ],
250
  optimization: {
251
    minimizer: [
252
      new TerserPlugin({
253
        extractComments: false,
254
      }),
255
    ],
256
  },
257
};