remove.otiose.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. 'use strict';
  2. const fs = require("fs");
  3. const keywords = [
  4. /.*\.scss$/i,
  5. /.*\.sass$/i,
  6. /.*\.less$/i,
  7. /.*\.vue$/i,
  8. /.*\.md$/i,
  9. /.*\.txt$/i,
  10. /.*\.html$/i,
  11. /.*\.log$/i,
  12. /.*\.gitignore$/i,
  13. ];
  14. const dirs = [
  15. 'dist/dev/mp-weixin',
  16. 'dist/dev/mp-alipay',
  17. 'dist/dev/mp-baidu',
  18. 'dist/dev/mp-toutiao',
  19. 'dist/build/mp-weixin',
  20. 'dist/build/mp-alipay',
  21. 'dist/build/mp-baidu',
  22. 'dist/build/mp-toutiao',
  23. ];
  24. module.exports = {
  25. apply(compiler) {
  26. compiler.hooks.afterEmit.tap('compilation', compilation => {
  27. // 遍历所有文件
  28. for (let filePathName in compilation.assets) {
  29. for (let i in keywords) {
  30. const keyword = keywords[i];
  31. if (keyword.test(filePathName)) {
  32. for (let j in dirs) {
  33. const dir = dirs[j];
  34. const file = dir + '/' + filePathName;
  35. if (fs.existsSync(file)) {
  36. console.log('\n- 删除文件 ' + file);
  37. fs.unlinkSync(file);
  38. }
  39. }
  40. }
  41. }
  42. }
  43. });
  44. },
  45. };