Skip to content
Snippets Groups Projects
webpack.config.js 2.01 KiB
Newer Older
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

const config = {
  entry: {
    app: './src/scripts/index.js'
  },
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: "[name].bundle.js",
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.pug'
    }),
    new MiniCssExtractPlugin({
      filename: "style.css"
    })
  ],
  module: {
    rules: [
      {
        test: /\.pug$/,
        use: [
          { loader: "html-loader" },
          { loader: "pug-html-loader",
            options: {
              data: {
                cdn: "https://cdn.happy-dev.fr",
                xmpp: "https://jabber.happy-dev.fr/http-bind/",
                authority: "http://127.0.0.1:8000/openid/",
                endpoints: {
                  businessproviders: "http://127.0.0.1:8000/businessproviders/",
                  circles: "http://127.0.0.1:8000/circles/",
                  groups: "http://127.0.0.1:8000/groups/",
                  joboffers: "http://127.0.0.1:8000/job-offers/",
                  projects: "http://127.0.0.1:8000/projects/",
                  skills: "http://127.0.0.1:8000/skills/",
                  users: "http://127.0.0.1:8000/users/"
                }
              }
            }
          }
        ]
      },
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: "babel-loader"
      },
      {
        test: /\.scss$/,
        use: [
          MiniCssExtractPlugin.loader,
          { loader: 'css-loader', options: { url: false, sourceMap: true } },
          { loader: 'sass-loader', options: { sourceMap: true } }
        ]
      },
      {
        test: /\.(gif|png|jpe?g|svg)$/i,
        use: 'file-loader'
      },
      {
        test: /\.(eot|ttf|woff|woff2)$/,
        loader: 'file-loader',
      }
    ]
  }
};

module.exports = (env, argv) => {
  if (argv.mode === 'development') {}
  if (argv.mode === 'production') {}
  return config;
}