我尝试将预配置数据内联到使用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
的模块。
我的方法是否有效?我做错了吗?