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

Javascript 是否可以将Browserify API与一些JS文件的字符串内容一起使用?,javascript,node.js,browserify,Javascript,Node.js,Browserify,我正在node.js中做一个爱好项目,我正在尝试使用BrowserifyAPI。我有一个对象,它包含JS文件名作为键,JS文件内容作为名称。比如: var obj = { "a.js": { content: "require('test/b.js'); var hello = 1;" }, "test/b.js": { content: "var b = 1;" }, } (两个content字段都有实际的javascript文件内容。) 我想浏览这些“虚拟”文件我不想将它们写入磁盘并从

我正在node.js中做一个爱好项目,我正在尝试使用BrowserifyAPI。我有一个对象,它包含JS文件名作为键,JS文件内容作为名称。比如:

var obj = {
 "a.js": { content: "require('test/b.js'); var hello = 1;" },
 "test/b.js": { content: "var b = 1;" },
}
(两个
content
字段都有实际的javascript文件内容。)

我想浏览这些“虚拟”文件我不想将它们写入磁盘并从磁盘读取,我想做一个内存操作。比如:

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


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

以防万一有人在找这个。 我确实发现,您可以被发送到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参数的
条目
,以便向bundle中添加更多文件,也许这些文件也可以是可读的流


我还做了一些改进,以便将来更好地记录这一点,或许可以为用户指明正确的方向

@dandavis的
a.js
test/b.js
是虚拟的,除了在该对象中之外,在任何地方都不存在。但是键名遵循一个虚拟目录结构,这个文件容器对象将在某个时候通过编程从一些源中生成,所以它可能是大而复杂的。因此,如果我能把它传递给browserify,那就太好了。嘿,Umut,你有没有找到解决方案?谢谢