记录安装husky+commitlink踩的坑

编码问题

1
2
3
4
5
6
7
8
9
10
11
# 1. 安装husky
npm install --save-dev husky
npx husky init

# 生成commit-msg文件,这里产生问题
echo "npx --no -- commitlint --edit \$1" > .husky/commit-msg

# 2. 安装commitlint
npm install --save-dev @commitlint/config-conventional @commitlint/cli
# 生成commitlint配置文件,这里产生问题
echo "export default { extends: ['@commitlint/config-conventional'] };" > commitlint.config.js

生成的两个文件都是UTF-16编码,导致husky和commitlint都无法执行,需要转换为UTF-8编码

commit-msg脚本内容

我执行生成commit-msg文件时,生成的内容是

1
2
3
4
5
6
npx --no -- commitlint --edit \npm run commitlint
# 但实际上应该是
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npx --no-install commitlint --edit "$1"