是否可以将Browserify API与某些JS文件的字符串内容一起使用?

时间:2015-12-18 23:15:44

标签: javascript node.js browserify

我正在 node.js 中开展一个爱好项目,我正在尝试使用Browserify API。我有一个对象,它包含JS文件名作为键,JS文件内容作为名称。类似的东西:

var obj = {
 "a.js": { content: "require('test/b.js'); var hello = 1;" },
 "test/b.js": { content: "var b = 1;" },
}

(两个content字段都有实际的javascript文件内容。)

我想浏览这些“虚拟”文件。 我不想将它们写入磁盘并从磁盘读取,我想在内存操作中执行 。类似的东西:

var out = browserify(obj)

/// out variable contains

var b = 1;
var hello = 1;

/// no disk action at all

如果我有一些JS文件的字符串内容,而不实际读取或写入文件系统,是否可以使用browserify API?

1 个答案:

答案 0 :(得分:0)

以防万一其他人正在寻找这个。 我确实发现你可以将readable streams作为参数发送到browserify,所以它会像这样工作:

var s = new require('stream').Readable(),
    path = require('path').parse(process.cwd() + '/' + filePath);

s.push(fileContents);
s.push(null);

browserify(s, { basedir: path.dir }).bundle(callback);

请注意,如果脚本位于当前工作目录以外的其他位置,则还需要指定可选的basedir参数。

据我所知,可以使用option参数的entries来向bundle中添加更多文件,也许那些也可以是可读流? more here

我还有submitted a request所以将来可以更好地记录这些内容,或许可以将用户指向正确的方向。