Rev 16649 | Rev 16792 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
const path = require("path");
const isDevelopment = process.env.NODE_ENV === "development";
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const TerserPlugin = require("terser-webpack-plugin");
// Add paths while bundling
const paths = {
menu: {
entry: "./react-webpack/menu/index.js",
output: path.join(__dirname, "public/react-bundles/menu"),
filename: "menuBundle.js",
},
companySizes: {
entry: "./react-webpack/settings/company-sizes/index.js",
output: path.join(__dirname, "public/react-bundles/settings/company-sizes"),
filename: "companySizesBundle.js",
},
hobbies: {
entry: "./react-webpack/settings/hobbies-and-interests/index.js",
output: path.join(
__dirname,
"public/react-bundles/settings/hobbies-and-interests"
),
filename: "hobbiesAndInterestsBundle.js",
},
aptitudes: {
entry: "./react-webpack/settings/aptitudes/index.js",
output: path.join(__dirname, "public/react-bundles/settings/aptitudes"),
filename: "aptitudesBundle.js",
},
competencyTypes: {
entry: "./react-webpack/settings/competency-types/index.js",
output: path.join(
__dirname,
"public/react-bundles/settings/competency-types"
),
filename: "competencyTypesBundle.js",
},
groupTypes: {
entry: "./react-webpack/settings/groups-types/index.js",
output: path.join(__dirname, "public/react-bundles/settings/group-types"),
filename: "groupTypesBundle.js",
},
industries: {
entry: "./react-webpack/settings/industries/index.js",
output: path.join(__dirname, "public/react-bundles/settings/industries"),
filename: "industriesBundle.js",
},
skills: {
entry: "./react-webpack/settings/skills/index.js",
output: path.join(__dirname, "public/react-bundles/settings/skills"),
filename: "skillsBundle.js",
},
degrees: {
entry: "./react-webpack/settings/degrees/index.js",
output: path.join(__dirname, "public/react-bundles/settings/degrees"),
filename: "degreesBundle.js",
},
categories: {
entry: "./react-webpack/settings/job-categories/index.js",
output: path.join(
__dirname,
"public/react-bundles/settings/job-categories"
),
filename: "jobCategoriesBundle.js",
},
aptitudes: {
entry: "./react-webpack/settings/aptitudes/index.js",
output: path.join(__dirname, "public/react-bundles/settings/aptitudes"),
filename: "aptitudesBundle.js",
},
hobbiesAndInterests: {
entry: "./react-webpack/settings/hobbies-and-interests/index.js",
output: path.join(
__dirname,
"public/react-bundles/settings/hobbies-and-interests"
),
filename: "hobbiesAndInterestsBundle.js",
},
profile: {
entry: "./react-webpack/profile/index.js",
output: path.join(__dirname, "public/react-bundles/profile"),
filename: "profileBundle.js",
},
jobs: {
entry: "./react-webpack/jobs/index.js",
output: path.join(__dirname, "public/react-bundles/jobs"),
filename: "jobsBundle.js",
},
feeds: {
entry: "./react-webpack/feeds/index.js",
output: path.join(__dirname, "public/react-bundles/feeds"),
filename: "feedsBundle.js",
},
followers: {
entry: "./react-webpack/follower/index.js",
output: path.join(__dirname, "public/react-bundles/followers"),
filename: "followersBundle.js",
},
recruitment_and_selection_vacancies: {
entry: "./react-webpack/recruitment_and_selection/vacancies/index.js",
output: path.join(
__dirname,
"public/react-bundles/recruitment_and_selection/vacancies"
),
filename: "vacanciesBundle.js",
},
recruitment_and_selection_candidates: {
entry: "./react-webpack/recruitment_and_selection/candidates/index.js",
output: path.join(
__dirname,
"public/react-bundles/recruitment_and_selection/candidates"
),
filename: "candidatesBundle.js",
},
recruitment_and_selection_interviews: {
entry: "./react-webpack/recruitment_and_selection/interviews/index.js",
output: path.join(
__dirname,
"public/react-bundles/recruitment_and_selection/interviews"
),
filename: "interviewsBundle.js",
},
chat: {
entry: "./react-webpack/chat/index.js",
output: path.join(__dirname, "public/react-bundles/chat"),
filename: "chatBundle.js",
},
mobileChat: {
entry: "./react-webpack/mobile-chat/index.js",
output: path.join(__dirname, "public/react-bundles/mobileChat"),
filename: "mobileChatBundle.js",
},
objetives_and_goals_planing: {
objetives: {
entry: "./react-webpack/objetives_and_goals-planing/objetives/index.js",
output: path.join(
__dirname,
"public/react-bundles/objetives_and_goals-planing/objetives"
),
filename: "objetivesBundle.js",
},
goals: {
entry: "./react-webpack/objetives_and_goals-planing/goals/index.js",
output: path.join(
__dirname,
"public/react-bundles/objetives_and_goals-planing/goals"
),
filename: "goalsBundle.js",
},
tasks: {
entry: "./react-webpack/objetives_and_goals-planing/tasks/index.js",
output: path.join(
__dirname,
"public/react-bundles/objetives_and_goals-planing/tasks"
),
filename: "tasksBundle.js",
},
},
performance_evaluations: {
forms: {
entry: "./react-webpack/performance_evaluations/forms/index.js",
output: path.join(
__dirname,
"public/react-bundles/performance_evaluations/forms"
),
filename: "formsBundle.js",
},
evaluations: {
entry: "./react-webpack/performance_evaluations/evaluations/index.js",
output: path.join(
__dirname,
"public/react-bundles/performance_evaluations/evaluations"
),
filename: "evaluationsBundle.js",
},
},
organizational_climate: {
forms: {
entry: "./react-webpack/organizational-climate/form/index.js",
output: path.join(
__dirname,
"public/react-bundles/organizational-climate/form"
),
filename: "organizationalFormBundle.js",
},
},
jobDescription: {
entry: "./react-webpack/job_description/index.js",
output: path.join(__dirname, "public/react-bundles/job_description"),
filename: "jobDescription.js",
},
};
// change active path here
const currentPath = paths.feeds;
module.exports = {
entry: currentPath.entry,
output: {
path: currentPath.output,
filename: currentPath.filename,
},
watch: isDevelopment ? true : false,
mode: isDevelopment ? "development" : "production",
resolve: {
extensions: [".js", ".jsx", ".scss"],
},
module: {
rules: [
{
test: /(js|jsx)$/,
use: ["babel-loader"],
exclude: /node_modules/,
},
{
test: /\.css$/i,
use: [MiniCssExtractPlugin.loader, "css-loader"],
},
{
test: /\.module\.s(a|c)ss$/,
use: [
MiniCssExtractPlugin.loader,
{
loader: "css-loader",
options: {
modules: {
localIdentName: "[local]--[hash:base64:5]",
},
sourceMap: isDevelopment,
},
},
{
loader: "sass-loader",
options: {
sourceMap: isDevelopment,
},
},
],
},
{
test: /\.s(a|c)ss$/,
exclude: /\.module.(s(a|c)ss)$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader",
{
loader: "sass-loader",
options: {
sourceMap: isDevelopment,
},
},
],
},
],
},
plugins: [
new MiniCssExtractPlugin({
filename: "[name].css",
chunkFilename: "[id].css",
}),
],
optimization: {
minimizer: [
new TerserPlugin({
extractComments: false,
}),
],
},
};