当我用npm run start
启动我的create react应用程序时,我根据eslintrc.json中推荐的react和react hooks插件规则得到了预期的ESLint错误。终端显示预期的错误,如下所示,编译失败:
Line 8:10: 'turns' is assigned a value but never used no-unused-vars
如果我用npx kill-port [port-number]
关闭CRA,然后重新启动CRA,则应用程序编译成功,没有ESLint错误。因此,它似乎杀死了端口并重新编译禁用了ESLint。为了让ESLint再次运行,我必须更改package.json,保存并重新启动应用程序。
虽然这没什么大不了的,但它很不方便:1)因为我必须对package.json进行实际的内容更改——我为注册对文件的写入而添加的任何空白都会在保存时被Prettier再次删除;2)这需要时间,更不用说追踪这里发生的事情所花费的时间了——浪费时间从来都不是一件有趣的事。
因此,问题是——是否有一种简单的方法来配置ESLint,以便在每次CRA项目编译时启用它,而不是仅在项目配置文件更改时启用它?
几天过去了,没有人回答这个问题,所以我只想回答它,这样其他人就不用浪费我弄清楚的时间了。
我观察到,如果您使用npx kill-port [xxxx]
终止了正在运行的端口,然后在同一端口上重新启动该项目,esint将停止监视您的create-react-app项目。
这意味着,如果你想中止CRA并重新启动它(例如,由于无限循环或其他关键编译问题),使用npx kill-port
不是一种安全的方法。CRA会在使用npx kill-port
后重新编译并重新启动,但esint不会重新启动。这意味着,在你不知情的情况下,你的CRA将在没有任何React linting的情况下运行,这可能会导致错误悄悄进入你的代码。
我发现的中止CRA并在启用ESLint的情况下重新启动它的唯一方法是1)更改package.json,然后使用npx kill-port
或2)终止节点进程。
相关:
终止npm进程后端口仍在使用?