传递流而不是文件时,browserify.add的行为有所不同

时间:2015-09-27 14:25:52

标签: javascript node.js stream browserify

我尝试将预配置数据内联到使用browserify捆绑的动态生成的脚本中。

为此,我生成一个"模块"字符串如:

const moduleString = `module.exports = ${JSON.stringify(configurationData)};`;

现在我想将此传递给http://i.stack.imgur.com/JHBcj.png。第一个选项是将字符串写入文件,生成包并删除临时文件。这有效,但感觉很乏味。

所以我想把数据推送到读取流:

var dataModuleStream = new stream.Readable();
dataModuleStream.push(moduleString);
dataModuleStream.push(null);

然后将其传递给.add来电:

b.add(dataModuleStream, {expose: 'config'});

这也有效,并将正确的数据作为名为config的模块内联到捆绑包中,但当我尝试从我的应用程序脚本中要求该模块时:

var config = require('config');

browserify失败并显示错误消息:

Cannot find module 'config' from '/foo/bar/baz'

当我使用临时文件方法时,它不会发生。使用流时,我省略了require调用,将构建文件,包括名为config的模块。

我的方法是否有效?我做错了吗?

0 个答案:

没有答案