如何将我的库打包在自执行函数中?(Emscripten)

How to pack my library in a self executing function? (emscripten)

本文关键字:函数 执行 Emscripten 我的      更新时间:2023-10-16

我使用 Embind 和 Emscripten 在 C++ 中创建了一个库。

一些手写的JS代码也使用--pre-js添加到库中

图书馆工作。但我想将代码重新排列为:

var MYLIB = (function(){
  // ... Original Code ...
  return Module;
})();
因此,代码

不会污染全局命名空间,并且代码简化器可以进行更好的优化。

emcc有内置功能吗?
该库只能在 Web 浏览器中运行,而不会在 nodejs 中运行。

您正在寻找的是MODULARIZEEXPORT_NAME选项。查看设置中的文档.js。

引用该文件:

默认情况下,我们以直接的方式将所有代码发送到输出
中 .js文件。这意味着,如果您将其加载到Web
的脚本标签中 页面,它将使用全局范围。设置模块化后,我们将发出

var EXPORT_NAME = function(Module) {
模块 = 模块 ||{};
// //..所有从Emscripten发出的代码..
返回模块;
// };

其中EXPORT_NAME来自同名选项