[关闭]
@Dale-Lin 2022-03-18T12:00:09.000000Z 字数 1090 阅读 321

assetModules

webpack5


webpack5 内置 Asset Modules,用来处理各类资源:

  1. const svgToMiniDataURI = require('mini-svg-data-uri')
  2. module.exports = {
  3. module: {
  4. rules: [
  5. {
  6. test: /\.css$/i,
  7. use: [
  8. "style-loader",
  9. "css-loader"
  10. ]
  11. },
  12. {
  13. test: /\.(png|jpe?g|gif)$/i,
  14. type: 'asset',
  15. parser: {
  16. dataUrlCondition: {
  17. maxSize: 8 * 1024 // 8kb
  18. }
  19. }
  20. },
  21. {
  22. test: /\.html/,
  23. type: "asset/resource",
  24. generator: {
  25. filename: 'static/[hash][ext][query]' // 会被输出到 ${output}/static 下
  26. }
  27. },
  28. {
  29. test: /\.svg/,
  30. type: "asset/inline", // 转成 Data URI
  31. generator: {
  32. dataUrl: content => {
  33. content = content.toString()
  34. return svgToMiniDataURI(content)
  35. }
  36. }
  37. },
  38. {
  39. test: /\.txt/,
  40. type: "asset/source" // 会将源代码打进 bundle
  41. }
  42. ]
  43. }
  44. }

type

generator

parser

自定义 asset 文件名

还可以修改 ouput.assetModuleFilename 来自定义 asset/resource 输出的文件名。

自定义 Data URL 处理器

默认情况下,data URL 用 base64 加密,可以指定 generator.dataUrl 来自定义其他加密算法。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注