写一个webpack-loader
2018-08-03 本文已影响124人
马建阳
都知道webpack的loader,可是你写过一个loader吗?
最近有空写了一个webpack-loader,如下:
replace.js
function replace(source) {
// 使用正则把 // @require '../style/index.css' 转换成 require('../style/index.css');
return source.replace(/(\/\/ *@require) +(('|").+('|")).*/, 'require($2);');
}
module.exports = function (content) {
return replace(content);
};
使用方法
module.exports = {
module: {
loaders: [
{
test: /\.js$/,
loaders: ['comment-require-loader'],
// 针对采用了 fis3 CSS 导入语法的 JavaScript 文件通过 comment-require-loader 去转换
include: [path.resolve(__dirname, 'node_modules/imui')]
}
]
}
};
该 Loader 名叫 comment-require-loader,作用是把 JavaScript 代码中的注释语法
// @require '../style/index.css'
转换成
require('../style/index.css');
该 Loader 的使用场景是去正确加载针对 Fis3 编写的 JavaScript,这些 JavaScript 中存在通过注释的方式加载依赖的 CSS 文件。
原文