写一个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 文件。
原文

上一篇下一篇

猜你喜欢

热点阅读