当前位置:   article > 正文

vscode commitlint(debug npm scripts)

vscode commitlint

最近在使用commitlint校验提交git提交日志的时候遇到点奇怪的问题,在这里记录下解决方案。

windows下使用默认命令“commitlint -e $GIT_PARAMS”校验会报“GIT_PARAMS is not available globally”

这个问题的原因是windows的环境变量中没有“GIT_PARAMS”,我换成windows下的环境变量形式“%GIT_PARAMS%”还是会报同样的错误,应该是windows下的git或许根本就没把当前提交的日志信息放入%GIT_PARAMS%。继续google,发现了在.git目录下有个COMMIT_EDITMSG文件,打开一看这个文件存储了最近一次提交的日志信息,于是把“commitlint -e $GIT_PARAMS”改为“commitlint -e .git/COMMIT_EDITMSG”,问题解决,这种写法在windows和mac上都支持。

commitlint校验失败(type cannot be empty,message cannot be empty)

上面这个问题奇怪的地方就在于我明明写了type和message的,google一番毫无结果之后我决定自己调试下“commitlint -e $GIT_PARAMS”到底是怎么校验提交信息的。于是按照vscode官方文档添加“Launch via NPM”如下:(关于vscode如何调试的基础信息请自行参考vscode debugging)

  1. // launch.json
  2. {
  3. // Use IntelliSense to learn about possible attributes.
  4. // Hover to view descriptions of existing attributes.
  5. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  6. "version": "0.2.0",
  7. "configurations": [
  8. {
  9. "type": "node",
  10. "request": "launch",
  11. "name": "Launch via NPM",
  12. "runtimeExecutable": "npm",
  13. "runtimeArgs": [
  14. "run-script",
  15. "debug"
  16. ],
  17. "port": 9229
  18. }
  19. ]
  20. }
  21. 复制代码

然后在项目的package.json添加debug脚本

  1. "scripts": {
  2. "debug": "commitlint -e .git/COMMIT_EDITMSG"
  3. },
  4. 复制代码

然后在commitlint源码上打上断点,f5启动调试,纳尼,没启动就直接退出了,什么情况。继续google,发现用node调试单文件需要添加--inspect参数,或者是--inspect-brk=port(port用来指定端口号)。这样就简单了,在node_modules的.bin目录下找到commitlint.cmd文件,进而找到commitlint的入口js文件,找到之后将npm scripts修改如下

  1. "scripts": {
  2. "debug":"node --nolazy --inspect-brk=9229 ./node_modules/@commitlint/cli/lib/cli.js -e .git/COMMIT_EDITMSG",
  3. }
  4. 复制代码

然后在cli.js中打上断点,f5启动调试就行了。

经过调试发现检验失败是因为commitlint的匹配正则没考虑到一些特殊字符,导致无法匹配,commitlint的匹配正则如下,可以看到中间部分并没有包含所有字符,而我的提交信息里面恰恰用了一个“@”字符,可以说非常尴尬了。

  1. ^(\w*)(?:\(([\w$.\-* ]*)\))?: (.*)$
  2. 复制代码
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/737922
推荐阅读
相关标签
  

闽ICP备14008679号