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

Github Actions构建Nuxt3应用时出现npm ENOENT错误求助

解决Nuxt 3在GitHub Actions构建时的ENOENT spawn sh错误

问题分析

你遇到的npm ERR! enoent spawn sh ENOENT错误,根源是依赖安装不完整或环境配置缺失,导致Nuxt构建脚本无法正常调用shell环境。结合你的配置来看,npm ci --ignore-scripts是关键问题——这个参数会跳过所有依赖包的install生命周期脚本,而Nuxt 3及部分依赖(比如原生模块、构建工具)需要通过这些脚本完成环境配置或二进制文件编译,跳过之后会直接导致构建流程缺少必要支持,触发找不到shell的错误。

修复方案

1. 移除--ignore-scripts参数

修改依赖安装步骤的命令,去掉跳过脚本的参数,让依赖包正常执行安装脚本:

- name: Install dependencies
  run: npm ci

npm ci本身会严格按照package-lock.json安装依赖,无需额外跳过脚本,恢复执行后能确保所有必要的环境配置和依赖编译完成。

2. 显式指定shell环境(可选)

如果上述方案无效,可以在构建步骤明确指定shell类型,避免环境识别问题:

- name: Build server
  run: npm run build
  shell: bash

3. 修正工作目录(针对路径嵌套问题)

错误信息里的路径/home/***/work/my-website-repo-name/my-website-repo-name显示存在目录嵌套,可能是actions/checkout的默认行为导致。可以在checkout步骤指定路径,避免嵌套:

- uses: actions/checkout@v3
  with:
    path: my-website-repo-name

或者后续步骤切换到正确工作目录:

- name: Install dependencies
  run: npm ci
  working-directory: ./my-website-repo-name

验证方法

提交修改后的GitHub Actions配置,触发一次master分支的push,观察构建流程是否正常执行。如果仍有错误,查看npm日志文件(错误信息中的/home/***/.npm/_logs/2022-11-21T11_35_50_456Z-debug-0.log),排查是否还有其他依赖缺失或环境配置问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:35:31