NEAR平台GuestBook示例通过yarn部署时遭遇asb命令未找到及asc模块缺失问题求助
解决NEAR GuestBook示例部署时的
asb: command not found及依赖冲突问题 我之前帮同学排查过Figment Learn NEAR学习路径里这个GuestBook示例的问题,正好和你遇到的情况完全一致,下面是经过验证的解决步骤:
核心问题分析
首先要明确:asb并不是一个独立的npm包,它是@as-pect/cli工具提供的命令,所以直接执行npm install asb肯定会报404错误。另外你遇到的assemblyscript版本冲突,是因为near-sdk-core@2.2.4依赖的visitor-as@0.3.2要求assemblyscript@^0.13.3,但项目默认安装的assemblyscript版本是0.17.14,导致peer依赖冲突,进而引发后续找不到asc模块的问题。
具体解决步骤
1. 清理现有依赖环境
先彻底清除旧的依赖文件,避免残留问题:
# 删除node_modules文件夹 rm -rf node_modules # 删除yarn.lock(用npm的话删package-lock.json) rm yarn.lock
2. 修复peer依赖冲突
在项目的package.json中添加依赖版本强制统一的配置:
- 如果你用yarn:在
package.json末尾添加resolutions字段"resolutions": { "assemblyscript": "^0.13.3" } - 如果你用npm(npm 8+版本):在
package.json末尾添加overrides字段"overrides": { "assemblyscript": "^0.13.3" }
这个配置会强制所有依赖使用指定的assemblyscript版本,解决peer依赖不兼容的问题。
3. 重新安装依赖并安装asb的提供者
执行以下命令重新安装依赖,并安装@as-pect/cli(这是asb命令的来源):
# yarn用户 yarn install yarn add --dev @as-pect/cli # npm用户 npm install npm install --save-dev @as-pect/cli
4. 确保asb命令可执行
如果直接执行asb还是报错,可以通过项目内的npx调用,或者在package.json的scripts里添加命令:
在package.json的scripts中新增:
"scripts": { // 保留原有脚本,新增这一行 "asb": "asb" }
之后执行:
# yarn用户 yarn asb # npm用户 npm run asb
5. 重新部署项目
现在再执行部署命令:
yarn deploy
这样应该就能顺利完成部署,不会再出现命令找不到或者模块缺失的问题了。
内容的提问来源于stack exchange,提问作者Erik Trautman
相关产品推荐
相关产品推荐

