const path = require("path");

// const DotenvPlugin = require("dotenv-webpack");
const ESLintPlugin = require("eslint-webpack-plugin");
const CopyPlugin = require("copy-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

module.exports = {
  entry: {
    serviceWorker: "./src/serviceWorker.ts",
    contentScript: "./src/contentScript.ts",
    popup: "./src/popup.ts",
  },
  module: {
    rules: [
      {
        test: /\.(js|ts)x?$/,
        use: ["babel-loader"],
        exclude: /node_modules/,
      },
      {
        test: /\.(scss|css)$/,
        use: [MiniCssExtractPlugin.loader, "css-loader", "sass-loader"],
      },
    ],
  },
  resolve: {
    extensions: [".ts", ".js"],
  },
  output: {
    filename: "[name].js",
    path: path.resolve(__dirname, "dist"),
    clean: true,
  },
  plugins: [
    // new DotenvPlugin(),
    new ESLintPlugin({
      extensions: ["js", "ts"],
      overrideConfigFile: path.resolve(__dirname, ".eslintrc"),
    }),
    new MiniCssExtractPlugin({
      filename: "styles/[name].css",
    }),
    new CopyPlugin({
      patterns: [{ from: "static" }],
    }),
  ],
};