更改默认命名空间'模块'在emscripten

时间:2015-05-10 14:34:46

标签: javascript emscripten

我正在使用emscripten为某些库提供Javascript绑定。 Emsripten将代码打包到名称空间(global var)中,名为' Module'。

我想更改命名,以便我可以使用反映库所用内容的名称,并且还可以防止变量名称冲突,因为我为其他库编写了绑定。

我无法在文档中的任何位置找到,它显示了如何执行此操作。有谁知道如何更改emscripten使用的默认命名空间?

1 个答案:

答案 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

相关问题