用 browserify 预处理?
Preprocessing with browserify?
如何使用 browserify 预处理函数调用?
在一个大的 js 文件中,有一次我需要将一个 JSON 对象传递给一个变量,但是这个 JSON 对象只能通过函数调用创建:
var myvar = Ractive.parse('mytemplate.html');
如果我这样写这个函数调用,这行代码会原样出现在bundle.js
文件中。我只是想要这样的东西:
var myvar = THIS_WILL_RUN_WHILE_BROWSERIFYING(Ractive.parse('mytemplate.html'));
所以在 bundle.js
中,我希望看到类似的内容:
var myvar = [{myobj:4},{x:1,y:2}];
如何使用 browserify(使用 Gulp)实现这一点?
Browserify 允许您创建自定义转换,下面的 link.
中有一个关于如何创建转换的很好示例
https://github.com/substack/browserify-handbook#transforms
将 $CWD
替换为 process.cwd()
的示例似乎是 OP 创建所需转换的良好起点。
万一将来可能有 link 人死亡,这里是示例。
var through = require('through2');
module.exports = function (file) {
return through(function (buf, enc, next) {
this.push(buf.toString('utf8').replace(/$CWD/g, process.cwd()));
next();
});
};
如何使用 browserify 预处理函数调用?
在一个大的 js 文件中,有一次我需要将一个 JSON 对象传递给一个变量,但是这个 JSON 对象只能通过函数调用创建:
var myvar = Ractive.parse('mytemplate.html');
如果我这样写这个函数调用,这行代码会原样出现在bundle.js
文件中。我只是想要这样的东西:
var myvar = THIS_WILL_RUN_WHILE_BROWSERIFYING(Ractive.parse('mytemplate.html'));
所以在 bundle.js
中,我希望看到类似的内容:
var myvar = [{myobj:4},{x:1,y:2}];
如何使用 browserify(使用 Gulp)实现这一点?
Browserify 允许您创建自定义转换,下面的 link.
中有一个关于如何创建转换的很好示例https://github.com/substack/browserify-handbook#transforms
将 $CWD
替换为 process.cwd()
的示例似乎是 OP 创建所需转换的良好起点。
万一将来可能有 link 人死亡,这里是示例。
var through = require('through2');
module.exports = function (file) {
return through(function (buf, enc, next) {
this.push(buf.toString('utf8').replace(/$CWD/g, process.cwd()));
next();
});
};