求助:Node.js v16.17.0+npm9.6.1环境下安装AdonisJS新项目报错
spawn npm ENOENT 错误解决办法 问题场景
Node.js v16.17.0、npm 9.6.1环境下,安装AdonisJS过程中执行node ace configure tests时触发错误,核心报错为spawn npm ENOENT,后续依赖安装失败导致项目自动回滚。具体报错信息:
Command failed with exit code 1: node ace configure tests Error: spawn npm ENOENT
at Process.ChildProcess._handle.onexit (node:internal/child_process:283:19)
at onErrorNT (node:internal/child_process:478:16)
at processTicksAndRejections (node:internal/process/task_queues:83:21) CREATE: test.ts CREATE: tests/bootstrap.ts CREATE: tests/functional/hello_world.spec.ts CREATE: contracts/tests.ts UPDATE: .adonisrc.json CREATE: .env.test UPDATE: tsconfig.json CREATE: .env.test [ wait ] installing @japa/runner, @japa/preset-adonis ...[ error ] Unable to create project. Cleaning up
解决步骤
检查npm是否在系统PATH中
打开终端输入npm -v,如果能正常输出版本号,说明PATH配置正常;如果报错,需要将npm所在路径添加到系统环境变量。Node.js默认安装时会自动配置,若未生效可手动找到Node安装目录下的npm可执行文件路径,添加到PATH中。手动安装依赖后重新配置
自动安装依赖失败,先手动安装所需包:npm install @japa/runner @japa/preset-adonis --save-dev安装完成后,重新执行配置命令:
node ace configure tests清理npm缓存
缓存损坏可能引发此类问题,执行以下命令清理:npm cache clean --force清理后重新尝试完整安装流程。
调整npm版本
部分AdonisJS版本与npm 9.x兼容性不佳,可尝试降级到npm 8.x版本:npm install -g npm@8.19.4之后重新执行安装步骤。
内容的提问来源于stack exchange,提问作者judith herlambang

