我正在 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?
答案 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所以将来可以更好地记录这些内容,或许可以将用户指向正确的方向。