如何在Deno中托管npm包?遇到panic报错求助
解决Deno中托管Lume依赖的npm包报错问题
解决方案步骤
1. 显式映射npm包到import_map.json
在import_map.json中添加Lume依赖的npm包具体地址映射,确保版本与Lume实际依赖一致:
{ "imports": { "lume/": "https://deno.land/x/lume@v1.12.1/", "npm:markdown-it-attrs@4.1.3": "https://registry.npmjs.org/markdown-it-attrs/-/markdown-it-attrs-4.1.3.tgz", "npm:markdown-it@13.0.0": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.0.tgz" } }
2. 更新deno.jsonc启用npm支持
在deno.jsonc中添加"npm": true配置,让Deno正确识别npm协议的依赖:
{ "importMap": "import_map.json", "npm": true }
3. 重新执行vendor命令
运行以下命令重新生成依赖目录:
deno vendor --force --unstable dev_deps.ts
问题原因
Deno的vendor工具在处理间接引入的npm依赖时,无法自动解析对应的本地存储路径,导致panic报错。通过显式在import映射中指定npm包的具体下载地址,配合启用npm支持配置,能让vendor工具正确定位并下载这些依赖到本地。
如果后续出现其他类似npm依赖报错,只需按照相同方式,在import_map.json中添加对应包的URL映射即可。
内容的提问来源于stack exchange,提问作者anick
相关产品推荐
相关产品推荐

