Javascript 使用browserify进行预处理?

Javascript 使用browserify进行预处理?,javascript,gulp,browserify,bundling-and-minification,Javascript,Gulp,Browserify,Bundling And Minification,如何使用browserify预处理函数调用 在一个大的js文件中,我需要将JSON对象传递给一个变量,但这个JSON对象只能通过函数调用创建: var myvar = Ractive.parse('mytemplate.html'); 如果我像这样编写这个函数调用,那么这行代码将按原样出现在bundle.js文件中。我只想要这样的东西: var myvar = THIS_WILL_RUN_WHILE_BROWSERIFYING(Ractive.parse('mytemplate.html'))

如何使用browserify预处理函数调用

在一个大的js文件中,我需要将JSON对象传递给一个变量,但这个JSON对象只能通过函数调用创建:

var myvar = Ractive.parse('mytemplate.html');
如果我像这样编写这个函数调用,那么这行代码将按原样出现在
bundle.js
文件中。我只想要这样的东西:

var myvar = THIS_WILL_RUN_WHILE_BROWSERIFYING(Ractive.parse('mytemplate.html'));
var myvar = [{myobj:4},{x:1,y:2}];
因此,在
bundle.js
中,我希望看到如下内容:

var myvar = THIS_WILL_RUN_WHILE_BROWSERIFYING(Ractive.parse('mytemplate.html'));
var myvar = [{myobj:4},{x:1,y:2}];

如何使用browserify(通过Gulp)实现这一点?

browserify允许您创建自定义转换,下面的链接提供了一个创建转换的好例子

使用
process.CWD()
替换
$CWD
的示例似乎是OP创建所需转换的良好起点

在未来可能出现死链接的情况下,以下是示例

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();
    });
};

var myvar=[myobj:{x:1,y:2}]您的意思是希望它创建无效的javascript:)我不使用browserfy,但查看文档->您可能希望创建自己的转换,。。有一个用
进程替换
$CWD
的例子。CWD()
看起来像是你可以尝试的东西。不太确定你想做什么,我已经很久没有用过Ractive了,但是你看过了吗?@Keith谢谢你的引导,我做了一个需要Jade(帕格)的东西文件并用
RACTIVE\u PREPARSE('path/to/my template.jade')
行替换解析的输出。谢谢你:(你可以考虑把你的评论移到一个新的答案,顺便说一句)。此外,我必须为模板输入提供
.jade
文件,而
节点racify
似乎不支持这些文件。