是否可以将Browserify API用于某些JS文件的字符串内容

Is it possible to use Browserify API with string contents of some JS files?

本文关键字:文件 JS 字符串 Browserify 用于 API 是否      更新时间:2023-09-26

我正在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?

以防万一有人在找这个。我确实发现,你可以将可读流作为一个参数发送到browserfy,所以它的工作方式是这样的:

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来向捆绑包中添加更多文件,也许这些文件也可以是可读流?点击此处了解更多

我还提交了一个请求,以便在未来更好地记录这一点,也许可以为用户指明正确的方向。