如何使用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)实现这一目标?
答案 0 :(得分:3)
Browserify允许您创建自定义转换,有一个很好的示例,说明如何在以下链接创建转换。
https://github.com/substack/browserify-handbook#transforms
使用process.cwd()
替换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();
});
};
的示例似乎是OP创建所需转换的良好起点。
如果潜在的未来死链接,这是一个例子。
MedicineID Type PlantId category
1223456 ABC P1 A
7821632 DEF P2 B
5436710 GHI P1 D
6743210 ABC P3 A
4321793 THE P4 D
7285743 ABC P1 B
4143521 DEF P3 A
5234345 GHI P2 D
5132451 FGE P1 B
1235432 REF P4 A
5652315 GHI P3 D
6733115 ABC P2 B
7752242 DEF P3 A
2652225 GHI P2 D
6242352 ABC P1 B