webpack做的事情,仅仅是分析出各种模块的依赖关系,然后形成资源列表,最终打包生成指定的文件中 更多的功能需要借助webpack loader 和 webpack plugins完成
webpack loader: loader本质上就是一个函数,他的作用是将某个源码字符串转换成另一个源码字符串返回
loader在读取文件内容之后,生成AST语法树之前
处理loaders的流程
当前模块是否满足某个规则======》满足===》读取规则中对应的loader
|| ||
|| ||
|| ||
不是 ||
空数组============================》loaders数组
||
||
||
<=======loader<=======code<=======loader<=======code
||
||
||
源码
loader配置
module.exports = {module:{rules:[ // 模块匹配的规则{ // 规则一,test: /index\.js$/, // 正则表达式,匹配模块的路径use: [ // 匹配到了使用哪些loader{// 每一个loader是一个对象loader: "./loader/test_loader", // loader的路径options:{ // 这里的属性可以作为参数传入loader中changeVar: "var"}}// 简介的写法// "./loader/test_loader?changeVar=var"]},{ // 规则二.....}]}}
