npm install 报错:Command failed: git checkout 2.2.0-c

[TOC](npm install 报错:Command failed: git checkout 2.2.0-c)

npm install 报错:Command failed: git checkout 2.2.0-c

export NODE_HOME=/usr/local/node-v14.14.0-linux-x64
npm config set registry https://registry.npmmirror.com

使用如上环境,编译一个前端项目,开发说本地编译成功,但是jenkins编译始终报错:

npm ERR! code 1
npm ERR! Command failed: git checkout 2.2.0-c
npm ERR! 错误:路径规格 '2.2.0-c' 未匹配任何 git 已知文件
npm ERR! 

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2025-01-20T07_22_50_221Z-debug.log

上面的信息如何查都没有用,检查日志/root/.npm/_logs/2025-01-20T07_22_50_221Z-debug.log,也没有找到有用的信息:

3882 warn notsup Unsupported engine for commander@13.0.0: wanted: {"node":">=18"} (current: {"node":"14.4.0","npm":"6.14.5"})
3883 warn notsup Not compatible with your version of node/npm: commander@13.0.0
3884 verbose notsup Not compatible with your version of node/npm: commander@13.0.0
3884 verbose notsup Required: {"node":">=18"}
3884 verbose notsup Actual:   {"npm":"6.14.5","node":"14.4.0"}
3885 verbose stack Error: Command failed: git checkout 2.2.0-c
3885 verbose stack 错误:路径规格 '2.2.0-c' 未匹配任何 git 已知文件
3885 verbose stack
3885 verbose stack     at ChildProcess.exithandler (child_process.js:303:12)
3885 verbose stack     at ChildProcess.emit (events.js:315:20)
3885 verbose stack     at maybeClose (internal/child_process.js:1051:16)
3885 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:287:5)
3887 verbose Linux 3.10.0-1160.el7.x86_64
3888 verbose argv "/usr/local/node-v14.4.0-linux-x64/bin/node" "/usr/local/node-v14.4.0-linux-x64/bin/npm" "install"
3889 verbose node v14.4.0
3890 verbose npm  v6.14.5
3891 error code 1
3892 error Command failed: git checkout 2.2.0-c
3892 error 错误:路径规格 '2.2.0-c' 未匹配任何 git 已知文件
3893 verbose exit [ 1, true ]

定位过程

1、尝试切换不同的Node版本,问题依然存在,仍然看不出问题;
2、切换不同代理,也不行;
3、开发始终坚持本地能编译过,但是给了一个建议,使用cnpm编译试试;
4、尝试安装cnpm,需要至少NodeV14.18.0;
5、安装nodeV14.18.0, 再安装cnpm;
6、使用cnpm install, 报错:
在这里插入图片描述

7、狐狸尾巴总算漏出来了,跟tui-editor依赖有关。
8、上网搜搜tui-editor信息,找到这篇文章“npm install 安装tui-editor报错解决

其原因是“原先的tui-editor插件(富文本编辑器插件)换了个名称,现在已经更名为toast-ui/editor,因此安装不了,从而报错!”

9、把情况通报给开发人员,开发说想起来了,确实他们原来也编译不过,后来有人给了他们一个资源文件,他们本地才编译通过的。

10、开发进一步尝试把本地的node_modules删除,然后本地也编译不过去了。

至此,问题真相大白。

在使用 `npm install` 安装包时,遇到错误提示 `error command C:\WINDOWS\system32\cmd.exe /d /s /c node install.js` 通常表明某个包的安装脚本执行失败。该错误信息指示 npm 尝试运行 `node install.js` 脚本时出现问题。 ### 常见原因 1. **依赖项中的原生模块需要编译** 某些包(如 `bcrypt`, `node-gyp`, `canvas` 等)依赖于本地二进制文件或 C/C++ 扩展,必须通过 `node-gyp` 编译。这要求系统上安装了 Python、Visual Studio 构建工具等依赖[^1]。 2. **Python 版本不兼容** Windows 上默认可能没有安装 Python 或安装的是 Python 3.x,而某些构建工具链仍需要 Python 2.7.x。若系统路径中未正确配置 Python,会导致编译失败。 3. **权限问题** 在某些环境中(如公司网络、受限制的用户账户),用户可能没有足够的权限运行脚本或访问系统资源,导致命令执行失败。 4. **Node.js 和 npm 版本不兼容** 若使用的 Node.js 或 npm 版本过旧,可能与某些现代包不兼容,尤其是在使用 ES Modules 或较新的 API 时。 5. **环境变量配置错误** 如果 `PATH` 环境变量未包含 `node` 或 `python` 的可执行路径,也会导致执行失败。 6. **代理或网络问题** 如果用户处于代理之后或网络不稳定,可能导致下载失败,从而中断安装流程。 --- ### 解决方案 #### 安装构建工具 对于依赖 `node-gyp` 的包,建议安装 [Windows Build Tools](https://github.com/felixrieseberg/windows-build-tools),它会自动安装 Python 2.7 和 Visual Studio 构建工具: ```bash npm install --global --production windows-build-tools ``` #### 设置 Python 环境 确保 Python 2.7.x 已安装,并将其添加到系统 `PATH` 中。可以通过以下命令验证: ```bash python --version ``` 若需切换 Python 版本,可使用 [`pyenv`](https://github.com/pyenv/pyenv) 或手动调整环境变量。 #### 使用管理员权限运行 尝试以管理员身份运行命令提示符或 PowerShell,避免权限不足的问题: ```bash npm install --verbose ``` #### 配置 npm 的 Python 路径 如果系统中有多个 Python 版本,可以显式指定 npm 使用的 Python 路径: ```bash npm config set python C:\Python27\python.exe ``` #### 更新 Node.js 和 npm 确保使用的是最新稳定版的 Node.js 和 npm。可通过 [nvm-windows](https://github.com/coreybutler/nvm-windows) 管理多个 Node.js 版本。 #### 清除缓存并重试 有时缓存损坏也会导致安装失败,可尝试清除缓存后重新安装: ```bash npm cache clean --force npm install ``` #### 检查代理设置 如果你在使用代理,请检查是否配置了正确的代理设置: ```bash npm config get proxy npm config get https-proxy ``` 若不需要代理,可清除相关配置: ```bash npm config delete proxy npm config delete https-proxy ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值