You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Snowpack中将node_modules下的wasm文件作为资源加载(适配sql.js)

Snowpack 中使用 sql.js 的实现方案

方案1:手动拷贝wasm文件(简单快捷,适合小型项目)

  • 安装sql.js依赖:
    npm install sql.js
    
  • 在项目根目录的public文件夹下新建static子目录,将node_modules/sql.js/dist/sql-wasm.wasm文件拷贝到该static目录中。Snowpack默认会将public目录下的所有资源原样暴露到服务根路径,无需额外配置。
  • 在业务代码中直接初始化sql.js即可:
    import initSqlJs from 'sql.js';
    
    // 传入wasm文件的可访问路径
    const SQL = await initSqlJs({
      locateFile: () => '/static/sql-wasm.wasm'
    });
    
    // 示例:创建空数据库
    const db = new SQL.Database();
    

方案2:自动拷贝wasm文件(适合多人协作/生产项目)

无需手动复制文件,通过Snowpack插件实现构建、开发阶段自动同步wasm文件:

  • 安装文件拷贝插件:
    npm install -D snowpack-plugin-copy
    
  • 编辑项目根目录下的snowpack.config.js,添加插件配置:
    module.exports = {
      // 其余原有配置保持不变
      plugins: [
        [
          "snowpack-plugin-copy",
          {
            patterns: [
              {
                source: "node_modules/sql.js/dist/sql-wasm.wasm",
                destination: "static",
              },
            ],
          },
        ],
      ],
    };
    
  • 业务代码的初始化逻辑和方案1完全一致。

注意:如果你的项目部署在域名子路径下,需要将wasm路径的前缀替换为对应的子路径,比如部署在/demo/路径下时,locateFile返回值改为/demo/static/sql-wasm.wasm即可。

内容的提问来源于stack exchange,提问作者Sri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:27:03