使用预构建部署Deno Fresh应用时锁文件哈希校验失败求助
解决方案
1. 修复预导入路径的错误配置
你当前deno.json的imports里存在多余通配符和未锁定子路径的问题,这会导致esm.sh拉取到不一致的依赖版本。修改配置如下:
"imports": { "preact": "https://esm.sh/preact@10.15.1?pin=v122", "preact/": "https://esm.sh/preact@10.15.1/?pin=v122", "preact-render-to-string": "https://esm.sh/preact-render-to-string@6.2.1?pin=v122", "@preact/signals": "https://esm.sh/@preact/signals@1.1.3?pin=v122", "@preact/signals-core": "https://esm.sh/@preact/signals-core@1.2.3?pin=v122" }
关键改动:
- 移除所有路径前的多余
*号 - 给
preact/子路径也加上?pin=v122,确保preact/debug这类子模块也锁定到指定版本
2. 重新生成并提交锁文件
本地执行构建命令,生成与配置完全匹配的deno.lock:
deno run -A dev.ts build --lock=deno.lock --lock-write
执行完成后,将更新后的deno.json和deno.lock一并提交到GitHub仓库。
3. 对齐GitHub Actions的Deno版本
确保CI环境使用和本地一致的Deno版本,避免版本差异导致依赖解析异常。在GitHub Actions workflow文件中添加版本指定:
- name: Setup Deno uses: denoland/setup-deno@v1 with: deno-version: 1.37.0 # 替换为你本地使用的Deno版本号
4. 清理CI依赖缓存(可选)
如果上述步骤无效,在构建前添加缓存清理命令,强制拉取匹配锁文件的依赖:
deno cache --reload --lock=deno.lock dev.ts
内容的提问来源于stack exchange,提问作者hcode
相关产品推荐
相关产品推荐

