webpack.config.js 1.1 KB

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