123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import { dirname, join } from "path";
- import { exec } from "child_process";
- import { fileURLToPath } from "url";
- import MiniCssExtractPlugin from "mini-css-extract-plugin";
- import CssMinimizerPlugin from "css-minimizer-webpack-plugin";
- export default {
- entry: "./src/BetterYTM.user.ts",
- output: {
- filename: "BetterYTM.user.js",
- path: join(dirname(fileURLToPath(import.meta.url)), "/dist"),
- clean: true,
- },
- mode: "production",
- resolve: {
- extensions: [
- ".ts",
- ".js",
- ".css",
- ".md",
- ],
- },
- module: {
- rules: [
- {
- test: /\.tsx?$/,
- use: "ts-loader",
- exclude: /node_modules/,
- },
- {
- test: /\.html$/i,
- loader: "html-loader",
- },
- {
- test: /\.md$/,
- use: [
- {
- loader: "html-loader",
- },
- {
- loader: "markdown-loader",
- },
- ],
- },
- {
- test: /.css$/,
- use: [MiniCssExtractPlugin.loader, "css-loader" /*, "sass-loader"*/],
- },
- ],
- },
- optimization: {
- minimizer: [
- `...`,
- new CssMinimizerPlugin(),
- ],
- },
- plugins: [
- new MiniCssExtractPlugin(),
- {
- apply: (compiler) => {
- compiler.hooks.afterEmit.tap("AfterEmitPlugin", () => {
- exec("npm run post-build", (_err, stdout, stderr) => {
- stdout && process.stdout.write(stdout);
- stderr && process.stderr.write(stderr);
- });
- });
- },
- },
- ],
- devtool: "source-map",
- };
|