Rev 16794 | 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
})
]
}
}