create-react-app 对于webpack watcher的过时投票选项,

uinbv5nw  于 3个月前  发布在  React
关注(0)|答案(1)|浏览(42)

描述问题

The troubleshooting documentation提到在webpack监视器无法检测到文件更改的情况下使用CHOKIDAR_USEPOLLING=true。最新的webpack版本(5.72.1)不使用chokidar来检测源文件更改。它使用自己的包watchpack,该包不支持CHOKIDAR_USEPOLLING变量。它有WATCHPACK_POLLING变量用于它。

你尝试恢复依赖关系了吗?

是的,这不会改变依赖树(create-react-app => react-scripts => webpack => watchpack)。

你在用户指南中搜索了哪些术语?

N/A

环境

N/A

重现问题的步骤

N/A

预期行为

更新文档,提到在webpack监视器出现问题时使用WATCHPACK_POLLING。我不确定CHOKIDAR_USEPOLLING是否完全过时。我在webpack-dev-server中找到了chokidar的使用方式来跟踪公共文件,所以我假设它们并没有完全从chokidar迁移过来。

实际行为

设置CHOKIDAR_USEPOLLING变量不足以强制轮询webpack监视器。

可复现的演示

在使用NFS时,我在webpack监视器中遇到了问题。显然,inotify在文件更新时触发事件的功能与NFS不兼容。我无法创建简单的步骤来重现这个问题。

qojgxg4l

qojgxg4l1#

@dimitriylol 感谢!

我可以确认,从2023-06-11开始,使用最新的create-react-app脚本初始化项目时,通过某种方式(直接环境导出、.env等)设置WATCHPACK_POLLING=true可以使npm start调用按预期工作。

对于其他进入此问题的人,我还建议在react-scripts/config/webpack.config.js模块中设置module.exports以包含对象

watchOptions: {
    ignored: ['**/node_modules']
}

,这样就不会因为一堆不会改变的文件而让CPU受到大量轮询的影响。(https://webpack.js.org/configuration/watch/#watchoptionsignored)

相关问题