Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 16649 | Rev 16781 | 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 = {
16644 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
  aptitudes: {
68
    entry: "./react-webpack/settings/aptitudes/index.js",
69
    output: path.join(__dirname, "public/react-bundles/settings/aptitudes"),
70
    filename: "aptitudesBundle.js",
71
  },
72
  hobbiesAndInterests: {
73
    entry: "./react-webpack/settings/hobbies-and-interests/index.js",
74
    output: path.join(
75
      __dirname,
76
      "public/react-bundles/settings/hobbies-and-interests"
77
    ),
78
    filename: "hobbiesAndInterestsBundle.js",
79
  },
80
  profile: {
81
    entry: "./react-webpack/profile/index.js",
82
    output: path.join(__dirname, "public/react-bundles/profile"),
83
    filename: "profileBundle.js",
84
  },
85
  jobs: {
86
    entry: "./react-webpack/jobs/index.js",
87
    output: path.join(__dirname, "public/react-bundles/jobs"),
88
    filename: "jobsBundle.js",
89
  },
90
  feeds: {
91
    entry: "./react-webpack/feeds/index.js",
92
    output: path.join(__dirname, "public/react-bundles/feeds"),
93
    filename: "feedsBundle.js",
94
  },
95
  followers: {
96
    entry: "./react-webpack/follower/index.js",
97
    output: path.join(__dirname, "public/react-bundles/followers"),
98
    filename: "followersBundle.js",
99
  },
100
  recruitment_and_selection_vacancies: {
101
    entry: "./react-webpack/recruitment_and_selection/vacancies/index.js",
102
    output: path.join(
103
      __dirname,
104
      "public/react-bundles/recruitment_and_selection/vacancies"
105
    ),
106
    filename: "vacanciesBundle.js",
107
  },
108
  recruitment_and_selection_candidates: {
109
    entry: "./react-webpack/recruitment_and_selection/candidates/index.js",
110
    output: path.join(
111
      __dirname,
112
      "public/react-bundles/recruitment_and_selection/candidates"
113
    ),
114
    filename: "candidatesBundle.js",
115
  },
116
  recruitment_and_selection_interviews: {
117
    entry: "./react-webpack/recruitment_and_selection/interviews/index.js",
118
    output: path.join(
119
      __dirname,
120
      "public/react-bundles/recruitment_and_selection/interviews"
121
    ),
122
    filename: "interviewsBundle.js",
123
  },
124
  chat: {
125
    entry: "./react-webpack/chat/index.js",
126
    output: path.join(__dirname, "public/react-bundles/chat"),
127
    filename: "chatBundle.js",
128
  },
129
  mobileChat: {
130
    entry: "./react-webpack/mobile-chat/index.js",
131
    output: path.join(__dirname, "public/react-bundles/mobileChat"),
132
    filename: "mobileChatBundle.js",
133
  },
134
  objetives_and_goals_planing: {
135
    objetives: {
136
      entry: "./react-webpack/objetives_and_goals-planing/objetives/index.js",
137
      output: path.join(
138
        __dirname,
139
        "public/react-bundles/objetives_and_goals-planing/objetives"
140
      ),
141
      filename: "objetivesBundle.js",
142
    },
143
    goals: {
144
      entry: "./react-webpack/objetives_and_goals-planing/goals/index.js",
145
      output: path.join(
146
        __dirname,
147
        "public/react-bundles/objetives_and_goals-planing/goals"
148
      ),
149
      filename: "goalsBundle.js",
150
    },
151
    tasks: {
152
      entry: "./react-webpack/objetives_and_goals-planing/tasks/index.js",
153
      output: path.join(
154
        __dirname,
155
        "public/react-bundles/objetives_and_goals-planing/tasks"
156
      ),
157
      filename: "tasksBundle.js",
158
    },
159
  },
160
  performance_evaluations: {
161
    forms: {
162
      entry: "./react-webpack/performance_evaluations/forms/index.js",
163
      output: path.join(
164
        __dirname,
165
        "public/react-bundles/performance_evaluations/forms"
166
      ),
167
      filename: "formsBundle.js",
168
    },
169
    evaluations: {
170
      entry: "./react-webpack/performance_evaluations/evaluations/index.js",
171
      output: path.join(
172
        __dirname,
173
        "public/react-bundles/performance_evaluations/evaluations"
174
      ),
175
      filename: "evaluationsBundle.js",
176
    },
177
  },
178
  organizational_climate: {
179
    forms: {
180
      entry: "./react-webpack/organizational-climate/form/index.js",
181
      output: path.join(
182
        __dirname,
183
        "public/react-bundles/organizational-climate/form"
184
      ),
185
      filename: "organizationalFormBundle.js",
186
    },
187
  },
188
  jobDescription: {
189
    entry: "./react-webpack/job_description/index.js",
190
    output: path.join(__dirname, "public/react-bundles/job_description"),
191
    filename: "jobDescription.js",
192
  },
193
};
4586 stevensc 194
 
15761 stevensc 195
// change active path here
16650 stevensc 196
const currentPath = paths.feeds;
4586 stevensc 197
 
198
module.exports = {
16644 stevensc 199
  entry: currentPath.entry,
200
  output: {
201
    path: currentPath.output,
202
    filename: currentPath.filename,
203
  },
204
  watch: isDevelopment ? true : false,
205
  mode: isDevelopment ? "development" : "production",
206
  resolve: {
207
    extensions: [".js", ".jsx", ".scss"],
208
  },
209
  module: {
210
    rules: [
211
      {
212
        test: /(js|jsx)$/,
213
        use: ["babel-loader"],
214
        exclude: /node_modules/,
215
      },
216
      {
217
        test: /\.css$/i,
218
        use: [MiniCssExtractPlugin.loader, "css-loader"],
219
      },
220
      {
221
        test: /\.module\.s(a|c)ss$/,
222
        use: [
223
          MiniCssExtractPlugin.loader,
224
          {
225
            loader: "css-loader",
226
            options: {
227
              modules: {
228
                localIdentName: "[local]--[hash:base64:5]",
229
              },
230
              sourceMap: isDevelopment,
231
            },
232
          },
233
          {
234
            loader: "sass-loader",
235
            options: {
236
              sourceMap: isDevelopment,
237
            },
238
          },
239
        ],
240
      },
241
      {
242
        test: /\.s(a|c)ss$/,
243
        exclude: /\.module.(s(a|c)ss)$/,
244
        use: [
245
          MiniCssExtractPlugin.loader,
246
          "css-loader",
247
          {
248
            loader: "sass-loader",
249
            options: {
250
              sourceMap: isDevelopment,
251
            },
252
          },
253
        ],
254
      },
255
    ],
256
  },
257
  plugins: [
258
    new MiniCssExtractPlugin({
259
      filename: "[name].css",
260
      chunkFilename: "[id].css",
261
    }),
262
  ],
263
  optimization: {
264
    minimizer: [
265
      new TerserPlugin({
266
        extractComments: false,
267
      }),
268
    ],
269
  },
270
};