不论是进行git commit还是进行lint-stage,都会遭遇到Unexpected Identifier的错误提示
简单地得出结论
Node.js的版本太旧,导致eslint感到不满。
当我使用下面的命令更新了Node.js后,问题就解决了!
sudo apt update && sudo apt install nodejs -y && sudo npm install n -g && sudo n stable && sudo apt purge -y nodejs npm && sudo apt update && sudo apt full-upgrade -y && sudo apt autoremove -y
经过
-
- 由于在开发过程中更换了电脑,因此需要克隆已完成初始设置的Git仓库,其中包括eslint、prettier、simple-git-hooks和lint-staged等。
因此,立即运行以下命令以完成准备工作:
git clone https://github.com/foooooooo/hogehoge.git
cd hogehoge
npm ci && npx simple-git-hooks
命令的简要说明:
npm ci
使用版本约束较宽松的package.json进行包安装,不使用npm i或npm install命令,而是使用package-lock.json文件中详细指定的包版本进行安装。
npx simple-git-hooks
如果在package.json中设置了simple-git-hooks的配置,则会创建/.git/hooks/目录,并依照配置进行相应的操作。
npx lint-staged(稍后命令将会出现)
如果在package.json中设置了lint-staged的配置,则将根据配置,在提交之前对暂存文件(即已添加到暂存区的文件)执行相应的命令。通常会执行eslint、prettier等linter和formatter。
npx eslint .(稍后命令将会出现)
对当前目录执行eslint。
初始设置已完成,但还是要确认simple-git-hooks和lint-staged的配置是否正确!
npx lint-staged
# => 报错:Unexpected Identifer
为什么会这样?
这是lint-staged出了问题吗?
git commit -m “commit test”
# => 报错:Unexpected Identifer
我不明白原因。
首先,错误信息只是”Unexpected Identifer”,太缺乏信息量了。
详细查询与simple-git-hooks、lint-staged、eslint等相关的关键词,也没有找到详细的解答信息。我该怎么办呢?
总结
eslint在生气。
npx eslint .
# =>typeerror: module.createrequire is not a function...というエラーが出る
根据我的调查,截至2022年9月18日最新版本的eslint(8.23.1)支持的nodejs版本是^12.22.0、^14.17.0或者>=16.0.0。
以eslint存储库作为参考资料
一方,在2022年9月18日,通过apt安装的node.js版本为10.19。
完全不受支持!!!!!!
肯定会被骂的!!!!
请使用以下命令更新Node.js至最新版本,仅供参考。
sudo apt update && sudo apt install nodejs -y && sudo npm install n -g && sudo n stable && sudo apt purge -y nodejs npm && sudo apt update && sudo apt full-upgrade -y && sudo apt autoremove -y
事情已变得很顺利!
参考资料
文献参考
资料来源