Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 6628 | Rev 7707 | 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",
  },
  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",
  },
  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",
  }
};

// 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,
      }),
    ],
  },
};