作者回复: 已更正
作者回复: 函数组合通常有两种方式,一种是从左到右(类似 unix 的 pipe),另外一种是从右到左(compose)。此处 webpack 选择的是 compose 方式,从右到左依次执行 loader,每个 loader 是一个函数。 style-loader: 向 DOM 插入 style 标签,并且将样式插入进去,这样网页才能解析到 css-loader: 可以让 webpack 解析 css(因为 webpack 原生只支持 js 和 json 的解析),并且将解析出来的 css 转换成一个对象,插入到 JS 里面去。 less-loader: 将 less 转换成 css
作者回复: 哈哈,感谢感谢
作者回复: 嗯嗯,理解正确
作者回复: 嗯,这门课设计的时候也是考虑到通用性更强一点,难度上也是一个循序渐进的过程。
作者回复: 是的,Node.js 内部的模块机制规范是基于 common.js。类似: module.exports = function () { }; css-loader 就是将 css 代码转换成这样的对象形式。
作者回复: 最好加一个反斜杠哈
作者回复: 把代码上传到github,然后贴一下链接我看看。
作者回复: 这个是因为 loader 的执行有严格的顺序。解析 less 为例子: 必须先将 less 转换成 css,然后在解析css 为 cjs 对象,最后再将 cjs 对象以 style 标签的方式插入到页面上。 因此执行顺序是: less-loader -> css-loader ->style-loader。 编写顺序搞好需要和执行顺序相反,因为 loader 采用的是 compose 的实现,不是 unix 的 pipe 实现。在第7章也会详细介绍 loader 顺序的实现原理