我正在用React做一个项目,遇到了一个让我难住的问题。

当我运行yarn start时,我得到这个错误:

TypeError [ERR_INVALID_ARG_TYPE]: "path"参数必须是类型 字符串。接收类型未定义

我不知道为什么会这样。


当前回答

如果您有一个弹出的CRA, webpack-dev-server配置有一些更改,如果保持不变将抛出此错误。比较刚弹射出来的cra4。x配置到我的cra3。X配置显示了对函数的一些更改,这些函数以前不接受参数,现在接受了。

在我的例子中,一个突破性的变化是添加了通往noopServiceWorkerMiddleware函数的路径。添加在缺失的路径noopServiceWorkerMiddleware(paths.publicUrl)为我修复了这个问题。

其他回答

我在流水线上运行时也遇到了同样的问题。

对我来说,问题是我在docker容器中使用的节点版本为v10.0.0。

更新到v14.7.0为我解决了这个问题

我在盖茨比博客上也遇到了同样的问题。依赖项无法升级,只能在npm 10.22.1版本上运行。

对我有效的方法如下:

#!/bin/bash
rm -rf .cache
rm -rf public
gatsby build
gatsby serve

基本上完全重建了所有东西,这个错误就消失了。很烦人,但至少它能构建。

更奇怪的是,如果我调整博客文章的图像,比如稍微调整一下大小,它就会生成。我完全不知道为什么。但这至少是个线索。

我也有同样的问题,运行npm install react-scripts@latest解决了我的问题。

只需将反应脚本更新到最新版本。

yarn add react-scripts@latest

或者如果使用NPM

npm install react-scripts@latest

去你的package.json 修改“react-scripts”:“3.x。X”到“react-scripts”:依赖项中的“^3.4.0” 重新安装react-scripts: npm I react-scripts 启动你的项目:npm Start