Husky 更改了 4.0.0 的路径处理 https://github.com/typicode/husky/releases/tag/v4.0.0。进行此更改后,它会在提交时引发以下错误来自视觉工作室:
husky > pre-commit (node v12.12.0)/c/path/to/repo/node_modules/.bin/lint-staged:
line 5: cygpath: command not foundinternal/modules/cjs/loader.js:797 throw err;
^Error: Cannot find module 'C:\lint-staged\bin\lint-staged.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:794:15)
at Function.Module._load (internal/modules/cjs/loader.js:687:27)
at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)
at internal/main /run_main_module.js:17:11 { code: 'MODULE_NOT_FOUND', requireStack: []}
husky > pre-commit hook failed
(add --no-verify to bypass)
然而,当提交from CLI,它按预期工作。鉴于错误消息有'C:\lint-staged\bin\lint-staged.js'
作为文件路径,我假设 Visual Studio 以不同的方式处理路径。
我正在尝试找到一种方法来在 Visual Studio 中完成这项工作。我处于企业环境中,因此我希望有一种方法可以将此配置包含在存储库中(而不是需要手动本地设置)。
我的 package.json 中包含了 husky 配置,如下所示
...
"husky":{
"hooks":{ "pre-commit": "lint-staged"}
},
"lint-staged":{
"!(*.min.*)js": "eslint --fix"
},
...
我目前正在使用:
nvm 1.1.7 与节点 12.16.1
哈士奇4.2.5
lint 阶段 10.1.3
视觉工作室2019
我找到了一个解决方案,尽管它不是完整的解释。简单的解决方法是修改您的 husky 命令,如下所示:
...
"husky":{
"hooks":{ "pre-commit": "npx lint-staged"}
},
...
指定 NPM 命令可以纠正路径问题。我在 lint-staged github 中对 2018 年问题的回复中找到了建议,来源here https://github.com/okonet/lint-staged/issues/420.
更新:自 lint-staged v10 起,“git-add”不应再添加到 lint-staged 命令中。source https://github.com/okonet/lint-staged#v10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)