我已经安装了 husky 和 commitlint,但是当我进行 commitlint 应视为无效的提交时,它通常会像未安装一样通过。
我有一个在
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
我该怎么办?我的哈士奇已安装,所以应该可以正常工作
亚历山大雷法,
我遇到了与你相同的问题,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"
来提交它。
我也遇到了同样的问题,通过更换解决了它
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