React Native项目Husky预提交钩子报错,添加node_modules忽略仍未解决
问题原因及解决方案
核心原因
??=(空值合并赋值运算符)是ES2020新增的语法特性,你的Node.js版本过低,不支持该语法。husky依赖的listr2工具库代码中使用了这个语法,导致预提交钩子执行时抛出语法错误。
解决步骤
检查当前Node.js版本:
node -v若版本低于14.0.0(
??=从Node.js 14.0.0开始支持),则需要升级Node.js。升级Node.js版本:
推荐用nvm(Node版本管理器)管理版本,操作如下:- 安装nvm(未安装的话)
- 安装LTS版本的Node.js:
nvm install 18 - 切换到刚安装的版本:
nvm use 18
不想用nvm的话,也可以直接从Node.js官网下载对应版本安装。
验证修复:
重新执行git commit --amend,确认预提交钩子正常运行。
注:你之前把node_modules添加到.husky/_/.gitignore的操作和当前问题无关,问题根源是Node版本不兼容,不是文件忽略规则的问题。
内容的提问来源于stack exchange,提问作者Rameez Hussain
相关产品推荐
相关产品推荐

