我正在使用emscripten为某些库提供Javascript绑定。 Emsripten将代码打包到名称空间(global var)中,名为' Module'。
我想更改命名,以便我可以使用反映库所用内容的名称,并且还可以防止变量名称冲突,因为我为其他库编写了绑定。
我无法在文档中的任何位置找到,它显示了如何执行此操作。有谁知道如何更改emscripten使用的默认命名空间?
答案 0 :(得分:13)
您可以更改默认Module
的{{3}}设置。您可以在命令行上执行此操作,作为emcc
的选项:
emcc -s EXPORT_NAME="'MyEmscriptenModule'" <other options...>
然后,无论您指定什么名称,该模块都将在全局范围内可用:
window.MyEmscriptenModule == {...}
请注意,如果将EXPORT_NAME
设置为1,则设置为EXPORT_NAME
的任何内容都将作为全局范围中的函数创建,您必须调用该函数来初始化模块。您可以将设置对象传递给此函数,它将返回模块实例:
var myModuleInstance = window.MyEmscriptenModule({noInitialRun: true});
如果您正在使用某些模块加载器(例如RequireJS),并且根本不想向全局命名空间添加任何内容,则可以选择使用--pre-js <file>
和--post-js <file>
选项包装最终的Javascript,如MODULARIZE
。