目录

Webpack 2.2 中文文档

transform-loader

transform loader for webpack

通过 webpack 加载器的方式来使用 browserify 的转换模块。

用法

文档:使用加载器

通过查询参数来传递模块名。

var x = require("!transform-loader?brfs!./file.js");
var x = require("!transform-loader/cacheable?brfs!./file.js"); // 可缓存版本

如果你传递了一个数字,将得到 this.options.transforms[number] 中的函数。

webpack 2 配置示例

module.exports = {
  module: {
    rules: [
      {
        loader: "transform-loader?brfs",
        enforce: "post"
      },
            {
        test: /\.coffee$/,
        loader: "transform-loader/cacheable?coffeeify"
      },
      {
        test: /\.weirdjs$/,
        loader: "transform-loader?0"
      }
    ]
  },
  plugins: [
    new webpack.LoaderOptionsPlugin({
      options: {
        transforms: [
          function(file) {
            return through(function(buf) {
              this.queue(buf.split("").map(function(s) {
                return String.fromCharCode(127-s.charCodeAt(0));
              }).join(""));
            }, function() { this.queue(null); });
          }
        ]
      }
    })
  ]
};

webpack 1 配置示例

module.exports = {
    module: {
        postLoaders: [
            {
                loader: "transform-loader?brfs"
            }
        ]
        loaders: [
            {
                test: /\.coffee$/,
                loader: "transform-loader/cacheable?coffeeify"
            },
            {
                test: /\.weirdjs$/,
                loader: "transform-loader?0"
            }
        ]
    },
    transforms: [
        function(file) {
            return through(function(buf) {
                this.queue(buf.split("").map(function(s) {
                    return String.fromCharCode(127-s.charCodeAt(0));
                }).join(""));
            }, function() { this.queue(null); });
        }
    ]
};

典型例子 brfs

假如你有下面这样的 Node 源码:

var test = require('fs').readFileSync('./test.txt', 'utf8');

在 npm install transform-loader brfs –save 之后,像下面这样添加加载器到你的配置中:

module.exports = {
    context: __dirname,
    entry: "./index.js",
    module: {
        loaders: [
            {
                test: /\.js$/,
                loader: "transform-loader?brfs"
            }
        ]
    }
}

加载器将应用到所有 JS 文件,这样在执行 watch 任务时将导致性能提醒。因此你也许需要使用带缓存的版本 transform-loader/cacheable?brfs 。

License

MIT (http://www.opensource.org/licenses/mit-license.php)

原文:https://webpack.js.org/loaders/transform-loader/

上一篇: 下一篇: