webpack.config.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { dirname, join } from "path";
  2. import { exec } from "child_process";
  3. import { fileURLToPath } from "url";
  4. export default {
  5. entry: "./src/BetterYTM.user.ts",
  6. mode: "production",
  7. // optimization: {
  8. // minimize: false,
  9. // },
  10. module: {
  11. rules: [
  12. {
  13. test: /\.tsx?$/,
  14. use: "ts-loader",
  15. exclude: /node_modules/,
  16. },
  17. {
  18. test: /\.html$/i,
  19. loader: "html-loader",
  20. },
  21. {
  22. test: /\.md$/,
  23. use: [
  24. {
  25. loader: "html-loader",
  26. },
  27. {
  28. loader: "markdown-loader",
  29. },
  30. ],
  31. },
  32. {
  33. test: /\.css$/i,
  34. use: "raw-loader",
  35. },
  36. ],
  37. },
  38. plugins: [
  39. {
  40. apply: (compiler) => {
  41. compiler.hooks.afterEmit.tap("AfterEmitPlugin", () => {
  42. exec("npm run post-build", (_err, stdout, stderr) => {
  43. stdout && process.stdout.write(stdout);
  44. stderr && process.stderr.write(stderr);
  45. });
  46. });
  47. },
  48. },
  49. ],
  50. resolve: {
  51. extensions: [".ts", ".js"],
  52. },
  53. output: {
  54. filename: "BetterYTM.user.js",
  55. path: join(dirname(fileURLToPath(import.meta.url)), "/dist"),
  56. },
  57. devtool: "source-map",
  58. };