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]
中的函数。
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); });
}
]
}
})
]
};
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); });
}
]
};
假如你有下面这样的 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
。
MIT (http://www.opensource.org/licenses/mit-license.php)