webpack.config.js 976 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. const path = require("path");
  2. const { exec } = require("child_process");
  3. const package = require("./package.json");
  4. module.exports = {
  5. entry: "./src/BetterYTM.user.ts",
  6. mode: "production",
  7. module: {
  8. rules: [{
  9. test: /\.tsx?$/,
  10. use: "ts-loader",
  11. exclude: /node_modules/,
  12. },
  13. {
  14. test: /\.html$/i,
  15. loader: "html-loader",
  16. },
  17. {
  18. test: /\.s[ac]ss$/i,
  19. use: [
  20. "style-loader",
  21. "css-loader",
  22. "sass-loader",
  23. ],
  24. },
  25. ],
  26. },
  27. plugins: [{
  28. apply: (compiler) => {
  29. compiler.hooks.afterEmit.tap("AfterEmitPlugin", () => {
  30. exec("node ./tools/post-build.js", (_err, stdout, stderr) => {
  31. stdout && process.stdout.write(`${stdout}\n`);
  32. stderr && process.stderr.write(`${stderr}\n`);
  33. });
  34. });
  35. }
  36. }],
  37. resolve: {
  38. extensions: [".ts", ".js"],
  39. },
  40. output: {
  41. filename: "BetterYTM.user.js",
  42. path: path.resolve(__dirname),
  43. },
  44. };