Rev 3639 | Rev 4052 | 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 = {
dashboard: {
entry: "./react-webpack/dashboard/components/index.js",
output: path.join(__dirname, "public/react-bundles/dashboard"),
filename: "dashboardBundle.js",
},
notifications: {
entry: "./react-webpack/notifications/index.js",
output: path.join(__dirname, "public/react-bundles/dashboard"),
filename: "notificationsBundle.js",
},
myProfiles: {
entry: "./react-webpack/profile/my-profiles/my-profiles/index.js",
output: path.join(
__dirname,
"public/react-bundles/my-profiles/my-profiles"
),
filename: "myProfilesBundle.js",
},
peopleViewedProfile: {
entry: "./react-webpack/profile/people-viewed-profile/index.js",
output: path.join(
__dirname,
"public/react-bundles/profile/people-viewed-profile"
),
filename: "peopleViewedProfileBundle.js",
},
profileView: {
entry: "./react-webpack/profile/view/index.js",
output: path.join(__dirname, "public/react-bundles/profile/view"),
filename: "profileViewBundle.js",
},
profileEdit: {
entry: "./react-webpack/profile/my-profiles/edit/index.js",
output: path.join(__dirname, "public/react-bundles/profile/edit"),
filename: "profileEditBundle.js",
},
myConnections: {
entry: "./react-webpack/connection/my-connections/index.js",
output: path.join(
__dirname,
"public/react-bundles/connection/my-connections"
),
filename: "myConnectionsBundle.js",
},
invitationsReceived: {
entry: "./react-webpack/connection/invitations-received/index.js",
output: path.join(
__dirname,
"public/react-bundles/connection/invitations-received"
),
filename: "invitationsReceivedBundle.js",
},
invitationsSent: {
entry: "./react-webpack/connection/invitations-sent/index.js",
output: path.join(
__dirname,
"public/react-bundles/connection/invitations-sent"
),
filename: "invitationsSentBundle.js",
},
peopleYouMayKnow: {
entry: "./react-webpack/connection/people-you-may-know/index.js",
output: path.join(
__dirname,
"public/react-bundles/connection/people-you-may-know"
),
filename: "peopleYouMayKnowBundle.js",
},
peopleBlocked: {
entry: "./react-webpack/connection/people-blocked/index.js",
output: path.join(
__dirname,
"public/react-bundles/connection/people-blocked"
),
filename: "peopleBlockedBundle.js",
},
myCompanies: {
entry: "./react-webpack/company/my-companies/index.js",
output: path.join(__dirname, "public/react-bundles/my-companies"),
filename: "myCompaniesBundle.js",
},
followingCompanies: {
entry: "./react-webpack/company/following-companies/index.js",
output: path.join(__dirname, "public/react-bundles/following-companies"),
filename: "followingCompaniesBundle.js",
},
companiesIWorkWith: {
entry: "./react-webpack/company/i-work-with/index.js",
output: path.join(__dirname, "public/react-bundles/company/i-work-with"),
filename: "iWorkWithBundle.js",
},
companiesRequestSent: {
entry: "./react-webpack/company/request-sent/index.js",
output: path.join(__dirname, "public/react-bundles/company/request-sent"),
filename: "requestSentBundle.js",
},
companiesInvitationsReceived: {
entry: "./react-webpack/company/invitations-received/index.js",
output: path.join(
__dirname,
"public/react-bundles/company/invitations-received"
),
filename: "invitationsReceivedBundle.js",
},
companyView: {
entry: "./react-webpack/company/view/index.js",
output: path.join(__dirname, "public/react-bundles/company/view"),
filename: "companyViewBundle.js",
},
appliedJobs: {
entry: "./react-webpack/job/applied-jobs/index.js",
output: path.join(__dirname, "public/react-bundles/job/applied-jobs"),
filename: "appliedJobsBundle.js",
},
savedJobs: {
entry: "./react-webpack/job/saved-jobs/index.js",
output: path.join(__dirname, "public/react-bundles/job/saved-jobs"),
filename: "savedJobsBundle.js",
},
jobView: {
entry: "./react-webpack/job/view/index.js",
output: path.join(__dirname, "public/react-bundles/job/view"),
filename: "jobViewBundle.js",
},
authSignin: {
entry: "./react-webpack/auth/signin-section/index.js",
output: path.join(__dirname, "public/react-bundles/auth/signin"),
filename: "signinBundle.js",
},
myGroups: {
entry: "./react-webpack/group/my-groups/my-groups/index.js",
output: path.join(__dirname, "public/react-bundles/my-groups"),
filename: "myGroupsBundle.js",
},
groupEdit: {
entry: "./react-webpack/group/my-groups/edit/index.js",
output: path.join(__dirname, "public/react-bundles/groupEdit"),
filename: "groupEdit.js",
},
groupView: {
entry: "./react-webpack/group/view/index.js",
output: path.join(__dirname, "public/react-bundles/group/groupView"),
filename: "groupView.js",
},
joinedGroups: {
entry: "./react-webpack/group/joined-groups/index.js",
output: path.join(__dirname, "public/react-bundles/group/joined-groups"),
filename: "joinedGroupsBundle.js",
},
groupRequestsSent: {
entry: "./react-webpack/group/requests-sent/index.js",
output: path.join(__dirname, "public/react-bundles/group/requests-sent"),
filename: "requestSentBundle.js",
},
groupInvitationsReceived: {
entry: "./react-webpack/group/invitations-received/index.js",
output: path.join(
__dirname,
"public/react-bundles/group/invitations-received"
),
filename: "invitationsReceivedBundle.js",
},
accountSettings: {
entry: "./react-webpack/account-settings/index.js",
output: path.join(__dirname, "public/react-bundles/account-settings"),
filename: "accountSettingsBundle.js",
},
navBar: {
entry: "./react-webpack/navbar/index.js",
output: path.join(__dirname, "public/react-bundles/navbar"),
filename: "navbarBundle.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",
},
inmail: {
entry: "./react-webpack/inmail/index.js",
output: path.join(__dirname, "public/react-bundles/inmail"),
filename: "inmailBundle.js",
},
marketplace: {
entry: "./react-webpack/marketplace/index.js",
output: path.join(__dirname, "public/react-bundles/marketplace"),
filename: "marketplaceBundle.js",
},
profileMicrolearning: {
entry: "./react-webpack/profile-microlearning/index.js",
output: path.join(__dirname, "public/react-bundles/profile-microlearning"),
filename: "profileMicrolearningBundle.js",
},
resetPassword: {
entry: "./react-webpack/auth/signin-section/signin-section/reset-password/index.js",
output: path.join(__dirname, "public/react-bundles/auth/reset-password"),
filename: "resetPasswordBundle.js",
},
search: {
entry: "./react-webpack/search/index.js",
output: path.join(__dirname, "public/react-bundles/search"),
filename: "searchBundle.js",
},
postView: {
entry: "./react-webpack/dashboard/post/index.js",
output: path.join(__dirname, "public/react-bundles/postView"),
filename: "postViewBundle.js",
},
selfEvaluation: {
entry: "./react-webpack/self-evaluation/index.js",
output: path.join(__dirname, "public/react-bundles/self-evaluation"),
filename: "selfEvaluationBundle.js",
},
performanceEvaluation: {
entry: "./react-webpack/performance-evaluation/index.js",
output: path.join(__dirname, "public/react-bundles/performance-evaluation"),
filename: "performanceEvaluationBundle.js",
},
impersonate: {
entry: "./react-webpack/impersonate/index.js",
output: path.join(__dirname, "public/react-bundles/impersonate"),
filename: "impersonateBundle.js",
},
};
// change active path here
const currentPath = paths. profileEdit;
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,
}),
],
},
};