编写一个loader
loader 是导出为一个函数的 node 模块。该函数在 loader 转换资源的时候调用。给定的函数将调用 loader API,并通过 this 上下文访问。
注意loader的调用顺序是从后往前,最后需要输出一个转换后的模块和source map(可选)
1、用法原则(也是编写的依据)
简单simple:loaders 应该只做单一任务。这不仅使每个 loader 易维护,也可以在更多场景链式调用。
链式chaining:利用 loader 可以链式调用的优势。写五个简单的 loader 实现五项任务,而不是一个 loader 实现五项任务。功能隔离不仅使 loader 更简单,可能还可以将它们用于你原先没有想到的功能。
模块化modular:保证输出模块化。loader 生成的模块与普通模块遵循相同的设计原则。
无状态stateless:确保 loader 在不同模块转换之间不保存状态。每次运行都应该独立于其他编译模块以及相同模块之前的编译结果。
2、loader工具库Loader Utilities