我想知道如何使用FS导出模块+file_packager
的数据文件?
我们正在使用Emscripten生成ES6导出,包含以下内容:
emcc -Wl,-rpath,./wasm -Wl,-rpath,./wasm --rtlib=compiler-rt -Wl,-rpath,./wasm -Wl,-rpath,./wasm --rtlib=compiler-rt --no-entry -sALLOW_MEMORY_GROWTH=1 -sFORCE_FILESYSTEM=1 -sEXPORT_ALL=1 -sLINKABLE=1 -sMODULARIZE=1 -sEXPORT_ES6=1 -sEXPORT_NAME=libfrutil
这个库正在工作,我们可以在ES6中导入整个WASM绑定。现在的问题是如何让下面一行生成的FS库工作:
file_packager fs.data --js-output=fs.js --export-name=libfreerad --preload ~/Documents/Repositories/projects/fr-server/share/dictionary@/share/dictionary
一旦这些可用我们就可以做:
import libfrutil from "../util/libfrutil-util";
const wasm = await libfreeradiusUtil(0);
const error = wasm.cwrap("fr_strerror", "string", []);
所以我不知道该怎么处理fs。数据和fs.js脚本。显然。data文件需要可用,所以它可以被获取,但fs.js是令人困惑的。我把它当作一个类似libfrutil的模块吗?
没有任何关于如何在ES6中实际使用FS的例子,所以它非常令人困惑。
我认为最简单的解决方案(也是最有效的)是使用--embed-file
emcc链接器标志。这将文件数据嵌入到wasm二进制文件本身中(在内部它调用file-packager,但您不需要自己运行file-packager)。
这是否适用于您的用例?