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

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

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

我不知道为什么会这样。


当前回答

只需要删除并重新安装反应脚本

删除 Yarn删除反应脚本 添加 Yarn添加反应脚本

然后rm -rf node_modules/ yarn。锁纱

记住不要经常更新react-scripts版本

其他回答

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

只需要删除并重新安装反应脚本

删除 Yarn删除反应脚本 添加 Yarn添加反应脚本

然后rm -rf node_modules/ yarn。锁纱

记住不要经常更新react-scripts版本

在同一个目录包里。json, package-lock。Json和yarn.lock。它帮助我删除纱线。锁目录。尽管我不想使用纱线,但它还是以某种方式添加到我的项目中

我只是在安装和删除一些npm包后遇到了这个问题,花了将近5个小时来弄清楚发生了什么。

我所做的基本上是复制我的src/components到一个不同的目录,然后删除所有的节点模块和包锁。json(如果你在Docker容器中运行你的应用,为了安全起见,删除图像并重新构建它);然后把它重置为我的最后一次提交,然后放回我的src/components,然后运行NPM i。

我希望这能有所帮助。

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

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