webpack做的事情,仅仅是分析出各种模块的依赖关系,然后形成资源列表,最终打包生成指定的文件中 更多的功能需要借助webpack loader 和 webpack plugins完成

webpack loader: loader本质上就是一个函数,他的作用是将某个源码字符串转换成另一个源码字符串返回

loader在读取文件内容之后,生成AST语法树之前

处理loaders的流程
当前模块是否满足某个规则======》满足===》读取规则中对应的loader
|| ||
|| ||
|| ||
不是 ||
空数组============================》loaders数组
||
||
||
<=======loader<=======code<=======loader<=======code
||
||
||
源码

loader配置

  1. module.exports = {
  2. module:{
  3. rules:[ // 模块匹配的规则
  4. { // 规则一,
  5. test: /index\.js$/, // 正则表达式,匹配模块的路径
  6. use: [ // 匹配到了使用哪些loader
  7. {// 每一个loader是一个对象
  8. loader: "./loader/test_loader", // loader的路径
  9. options:{ // 这里的属性可以作为参数传入loader中
  10. changeVar: "var"
  11. }
  12. }
  13. // 简介的写法
  14. // "./loader/test_loader?changeVar=var"
  15. ]
  16. },
  17. { // 规则二
  18. .....
  19. }
  20. ]
  21. }
  22. }