Husky,GitHub Desktop 提交错误:找不到模块yarn.js

问题描述 投票:0回答:3

我正在开发一个依赖 Husky 的项目。 当我尝试在 GitHub Desktop 上提交更改或切换分支时,出现此错误:

2022-11-16T12:18:08.885Z - error: [ui] `git commit -F -` exited with an unexpected code: 1.
stderr:
/c/Users/user/AppData/Roaming/npm/yarn: line 5: cygpath: command not found
node:internal/modules/cjs/loader:988
  throw err;
  ^

Error: Cannot find module 'C:\Users\user\AppData\Local\GitHubDesktop\app-3.1.2\resources\app\git\node_modules\yarn\bin\yarn.js'
    at Module._resolveFilename (node:internal/modules/cjs/loader:985:15)
    at Module._load (node:internal/modules/cjs/loader:833:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:23:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

Node.js v18.10.0
husky - pre-commit hook exited with code 1 (error)

操作系统:Windows 10 专业版
GitHub Desktop:版本 3.1.2
Git:版本 2.38.0.windows.1

如果我使用 Powershell 中的 git,一切正常。

git yarnpkg modulenotfounderror github-desktop husky
3个回答
10
投票

所以问题是,没有

C:\Users\user\AppData\Local\GitHubDesktop\app-3.1.2\resources\app\git\node_modules\yarn\bin\yarn.js

我的第一个假设是

git
文件夹中没有初始化的npm。让我们检查一下:

1- 打开 Powershell
2- 输入

cd C:\Users\user\AppData\Local\GitHubDesktop\app-3.1.2\resources\app\git
设置目录
3- 输入
explorer .
在文件资源管理器中查看文件夹

所以我们看不到

node_modules
package.json
package-lock.json
。这意味着 npm 没有在当前目录中初始化。

添加缺失的

...\git\node_modules\yarn\bin\yarn.js

1- 运行

npm init
初始化目录中的 npm。
2-运行
npm i yarn
yarn 依赖项添加到当前目录。

这样,我们就添加了缺失的

...\git\node_modules\yarn\bin\yarn.js
文件。
现在一切正常!


2
投票

接受的答案有效,但每次更新 GitHub 后您都需要重复它,因为路径会改变(根据版本名称)。 这里的关键是

cygpath: command not found
。 cygpath 随 Git 一起提供,位于 C:\Program Files\Git\usr 中。将其添加到 PATH 中,问题将得到永久解决。


0
投票

对于我的情况(Windows 10),我可以通过将包含 cygpath.exe 的 C:\Program Files\Git\usr 添加到我的 PATH 环境变量来解决它。

© www.soinside.com 2019 - 2024. All rights reserved.