返回介绍

transform-loader

发布于 2019-05-27 04:54:30 字数 4515 浏览 1086 评论 0 收藏 0

Use browserify transforms as webpack-loader.

安装

npm i transform-loader --save

用法

通过查询参数(query parameter)来传递模块名。

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",
        options: {
          transforms: [
            function (/*file*/) {
              return through((buffer) => {
                return this.queue(
                  buffer.split('')
                    .map((chunk) => String.fromCharCode(127-chunk.charCodeAt(0))))
                    .join('')
              }, () => this.queue(null))
            }
          ]
        }
      },

      {
        test: /\.coffee$/,
        loader: "transform-loader/cacheable?coffeeify",
        options: {
          transforms: [
            function (/*file*/) {
              return through((buffer) => {
                return this.queue(
                  buffer.split('')
                    .map((chunk) => String.fromCharCode(127-chunk.charCodeAt(0))))
                    .join('')
              }, () => this.queue(null))
            }
          ]
        }
      },

      {
        test: /\.weirdjs$/,
        loader: "transform-loader?0",
        options: {
          transforms: [
            function (/*file*/) {
              return through((buffer) => {
                return this.queue(
                  buffer.split('')
                    .map((chunk) => String.fromCharCode(127-chunk.charCodeAt(0))))
                    .join('')
              }, () => 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 之后,添加如下 loader 到你的配置中:

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文