我正在 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?
最佳答案
以防万一其他人正在寻找这个。 我确实发现你可以有 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
参数。
据我所知,可以使用选项参数的 entries
来将更多文件添加到 bundle 中,也许这些文件也可以是可读流? more here
我还有submitted a request因此将来可以更好地记录下来,也许可以为用户指明正确的方向。
关于javascript - 是否可以将 Browserify API 与某些 JS 文件的字符串内容一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34365346/