react 编译器错误:healthcheck未检查next.js StrictMode,

rvpgvaaj  于 5个月前  发布在  React
关注(0)|答案(5)|浏览(82)

这是一个什么类型的问题?

  • React Compiler核心(JS输出不正确,或者在优化后您的应用程序工作不正确)
  • babel-plugin-react-compiler(安装或使用Babel插件时的构建问题)
  • eslint-plugin-react-compiler(安装或使用eslint插件时的构建问题)
  • react-compiler-healthcheck(安装或使用健康检查脚本时的构建问题)

重现链接

https://github.com/coleea/bug-report-next15-server-action

重现步骤

只需运行命令 npx react-compiler-healthcheck@latest
然后,即使Next.js实际上是StrictMode,react-compiler-healthcheck也不会检查StrictMode。
Next.js默认情况下在满足以下两个条件时处于StrictMode:

  1. Next.js版本13.4+
  2. App路由器
    您可以查看此内容: https://rc.nextjs.org/docs/app/api-reference/next-config-js/reactStrictMode
    因此,需要额外的三个步骤来检查是否启用了StrictMode。
  3. 检查package.json中的Next.js版本是否超过13.4。
  4. 如果是,请检查 reactStrictMode: false 是否未设置。
  5. 检查项目是否基于App-Router。
    如果满足三个条件,该项目即使在 next.config.mjs 文件上未设置 reactStrictMode: true ,也基于StrictMode。

此错误发生的频率如何?

每次都发生

您正在使用的React版本是什么?

19.0.0-rc.0

laik7k3q

laik7k3q1#

如果我的论点没有错,我愿意去实施它,所以请回复。

3mpgtkmj

3mpgtkmj2#

这已经修复了:#29167
一旦我们发布健康检查脚本的新版本,它就会推出。

68bkxrlz

68bkxrlz3#

@gsathya
您提到的PR只是检查reactStrictMode: true中是否存在next.config.mjs选项。这还不够。
我在阅读这个PR后写了这个问题。

doinxwow

doinxwow4#

有6个案例

  1. App路由器 + reactStrictMode: true => 严格模式。PR覆盖此情况。
  2. App路由器 + reactStrictMode: false => 非严格模式。PR覆盖此情况。
  3. App路由器 + reactStrictMode option is not set => 严格模式。PR不覆盖此情况。
  4. 页面路由器 + reactStrictMode: true => 严格模式。PR覆盖此情况。
  5. 页面路由器 + reactStrictMode: false => 非严格模式。PR覆盖此情况。
  6. 页面路由器 + reactStrictMode option is not set => 非严格模式。PR覆盖此情况。
    请检查第3个案例,以确定#29167是否覆盖此情况。
clj7thdc

clj7thdc5#

好的,我会重新打开这个。

相关问题