开发环境Wasm正常运行,构建后Manifold-3d的Wasm文件丢失求助
解决Manifold-3d Wasm库构建后文件丢失问题
方案1:配置Vite识别Wasm静态资源
SvelteKit基于Vite,需要让Vite把Wasm文件当作静态资源处理,确保构建时自动复制到输出目录。在vite.config.js中添加assetsInclude配置:
import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vite'; export default defineConfig({ plugins: [sveltekit()], assetsInclude: ['**/*.wasm'] });
方案2:显式指定Wasm文件路径初始化
修改导入逻辑,用import.meta.url获取Wasm文件的正确路径,避免构建后路径解析错误:
import init from "./built/manifold?init"; const wasmFilePath = new URL('./built/manifold.wasm', import.meta.url); let newWasm = await init(wasmFilePath).then((instance) => { console.log("THIS IS IT INIT ", instance); instance.setup(); return instance; });
方案3:检查Manifold Wasm编译配置
如果是自行编译的Manifold Wasm文件,确保Emscripten编译时生成的.wasm文件输出到项目的./built目录,且与初始化JS文件同目录。编译时可确认核心配置示例:
emcc your_source.cpp -o manifold.js -s EXPORTED_FUNCTIONS=['_setup','_your_custom_functions'] -s EXPORTED_RUNTIME_METHODS=['ccall','cwrap'] --bind
确保生成的manifold.wasm和manifold.js都在./built目录下。
方案4:手动添加复制命令兜底
如果以上方法无效,可在package.json的构建脚本中手动添加复制命令,强制将Wasm文件复制到构建后的目标路径:
"scripts": { "build": "vite build && cp ./src/routes/geo/built/manifold.wasm ./.svelte-kit/output/server/entries/pages/geo/" }
注意根据你项目的实际目录结构调整源路径和目标路径。
内容的提问来源于stack exchange,提问作者pyenthu
相关产品推荐
相关产品推荐

