我如何安装 husky 以将 commitlint 与嵌套文件夹一起使用?

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

我已经安装了 husky 和 commitlint,但是当我进行 commitlint 应视为无效的提交时,它通常会像未安装一样通过。

That's my directory tree

我有一个在

package.json
上安装 husky 的脚本:

{
  "name": "frontend",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "prepare": "cd ../ && husky install ./frontend/.husky"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@commitlint/cli": "^16.2.4",
    "@commitlint/config-conventional": "^16.2.4",
    "husky": "^8.0.1"
  }
}

pre-commit
.husky 内的文件

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
cd ./frontend && npx commitlint --edit

我该怎么办?我的哈士奇已安装,所以应该可以正常工作

git pre-commit-hook husky git-husky
2个回答
0
投票

亚历山大雷法,

我遇到了与你相同的问题,package.json 文件和 .git 目录不在同一级别。但我找到了一种方法来解决它,一步一步。

# Install commitlint cli and conventional config
npm install --save-dev @commitlint/{config-conventional,cli}
# For Windows:
npm install --save-dev @commitlint/config-conventional @commitlint/cli

# Configure commitlint to use conventional config
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js  

# Add hook
cat <<EEE > .husky/commit-msg
#!/bin/sh
. "\$(dirname "\$0")/_/husky.sh"

npx --no -- commitlint --edit "\${1}"
EEE   

chmod a+x .husky/commit-msg

  • 更新
    commit-msg
CHANGE
npx --no -- commitlint --edit "\${1} 

TO
cd nestedFolderRoot npx --no -- commitlint --edit "\${1} 

已修复。

现在您可以使用

git commit -m "type: xxxx"
来提交它。


0
投票

我也遇到了同样的问题,通过更换解决了它

cd ./frontend && npx commitlint --edit with "cd frontend && npm run commitlint ${1}"

并运行命令 - npm set-script commitlint "commitlint --color --edit"

如果 package.json 没有更新,请确保您有 [email protected] 否则

执行-npm install -g [email protected]

还看到了你对准备配置做了什么:

如果您的 package.json 和 .git 位于不同级别的目录中:

(如果 - 当 git 目录与 package.json 存储库处于同一级别时) ----------npx husky-init && npm install husky

(否则如果是单个子级别) ----------npm set-script 准备“cd .. && husky install ${parent_repository_name}/.husky” 然后 npm i

(其他) ----------npm set-script 准备“cd ../.. && husky install ${parent_repository_name}/${sub_repositories_name}/.husky” 然后 npm i

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