Mar*_*bov 9 javascript npm eslint package.json husky
我正在尝试为我公司的项目设置提交时的自动 linting,我见过的最好方法是 NPMhusky包。我正在按照、 、Husky的设置说明进行操作,但我一直遇到同样的问题,但我不知道如何解决。eslintprettierlint-staged
我的问题是我的项目是这样设置的:
\n- Parent Directory\n - .git\n - Working Project Directory\n - node_modules\n - package.json\nRun Code Online (Sandbox Code Playgroud)\n当我尝试安装 husky 时,出现错误,提示我缺少该.git文件,但它就在那里,只是文件结构中的上一级!
我在其他帖子中看到了一些有关使用以下技术来修复它的内容:
\n\n\n\n
npx mrm lint-staged这将失败,\xe2\x80\x99s 预期
\n\n然后修复 npm 准备脚本\n
\n"prepare": "husky install" -> "prepare": "cd .. && husky install some-folder/.husky"
\n\n然后运行
\nnpm i
然而它对我不起作用。
\n我也尝试在中安装 husky,parent directory但它不太有效,并且它使我们项目的安装过程变得更加困难
有没有人有什么建议?
\n编辑:这是我收到的错误消息:
\n% npx husky-ini\nt && npm install\nNeed to install the following packages:\n husky-init\nOk to proceed? (y) y\nhusky-init updating package.json\n setting prepare script to command "husky install"\n/Users/me/.npm/_npx/1ab9c0f68ac2536e/node_modules/husky/lib/index.js:22\n throw new Error(`.git can't be found (see ${url})`);\n ^\n\nError: .git can't be found (see https://typicode.github.io/husky/#/?id=custom-directory)\n at install (/Users/me/.npm/_npx/1ab9c0f68ac2536e/node_modules/husky/lib/index.js:22:15)\n at Object.<anonymous> (/Users/me/.npm/_npx/1ab9c0f68ac2536e/node_modules/husky-init/lib/bin.js:16:21)\nRun Code Online (Sandbox Code Playgroud)\n
Jua*_*ola 15
默认情况下,husky 假定您项目的 package.json 文件与 .git 文件处于同一级别。就您而言,正如您所说,它们处于不同的级别。
要解决此问题,您应该修改 package.json 文件。
即使你有这个错误
Error(`.git can't be found (see ${url})`);)
Run Code Online (Sandbox Code Playgroud)
你应该在脚本中包含这个
"scripts": {
...
"prepare": "husky install"
...
}
Run Code Online (Sandbox Code Playgroud)
您应该将其替换为:
"scripts": {
...
"prepare": "cd .. && husky install [child-folder]/.husky"
...
}
Run Code Online (Sandbox Code Playgroud)
例子:
解决方案
"scripts": {
...
"prepare": "cd .. && husky install project-folder/.husky"
...
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,husky 支持 monorepos,这意味着您的所有代码都应该位于 1 个父文件夹中。但是,如果您有 2 个不同的文件夹,例如,如果您正在构建具有前端和后端文件夹的全栈应用程序,则需要自定义目录。
npm i husky -D
Run Code Online (Sandbox Code Playgroud)
package.json文件并添加此行{
"scripts": {
"prepare": "cd .. && husky install [childFolderName]/.husky"
}
}
Run Code Online (Sandbox Code Playgroud)
npm install.husky在子文件夹内看到一个文件夹。pre-commit不带扩展名的文件,.husky并添加这些基本行和其他内容# ...
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
cd ./[childFolderName] && npm test
Run Code Online (Sandbox Code Playgroud)
完毕 !希望能帮助到你。如需更多参考,请将官方文档放在这里: https: //typicode.github.io/husky/guide.html
| 归档时间: |
|
| 查看次数: |
9510 次 |
| 最近记录: |