哈士奇。在此更改之后,它在提交时从Visual Studio**抛出以下错误:
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)
但是,当从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和Node 12.16.1
哈士奇4.2.5
棉绒分级10.1.3
Visual Studio 2019
4条答案
按热度按时间qmb5sa221#
我找到了一个解决办法,尽管它不是一个完整的解释。简单的解决方法是修改你的husky命令如下:
指定NPM命令可以纠正路径问题。我在2018年的一个问题的回复中找到了这个建议,在lint阶段的github上,源代码here。
更新:自lint-staged v10起,“git-add”不应再添加到lint-staged命令中。来源
qqrboqgw2#
vs 2019的问题是,集成的git在
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\usr\bin
中缺少cygpath.exe
文件https://developercommunity.visualstudio.com/t/Missing-cygpathexe-in-git/1393876
ztigrdn83#
我有一个类似的错误,是由相同的pre-commit钩子引起的,但它找不到yarn.js:
不幸的是,这并没有帮助:
我可以通过删除pre-commit钩子来解决这个问题,但我确实想避免这种情况。
ttisahbt4#
从VS控制台运行:
……然后再次承诺。