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

标签 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?

最佳答案

以防万一其他人正在寻找这个。 我确实发现你可以有 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/

相关文章:

node.js - 如何使用云函数在firestore中输入数据?

javascript - 如何使用 browserify 对 npm 模块执行转换

javascript - 如何使用 Browserify 和 Gulp 启动多页面应用程序

javascript - 将工具提示添加到进度条 Bootstrap

javascript - 检查字符串数组是否包含子字符串

javascript - 字符串变量值作为类型中的属性

javascript - Protractor 在浏览器打开后立即关闭 Chrome 浏览器而不输入 url

javascript - 使用 jasmine 单元测试框架对 node.js 进行单元测试

node.js - npm 安装失败(安装 MERN 堆栈)

javascript - grunt-browserify 别名停止工作