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

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

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

我不知道为什么会这样。


当前回答

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

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

我希望这能有所帮助。

其他回答

简单地升级反应脚本版本解决了我的问题。 从" React-scripts ": "3.x。X "到"react-scripts": "^3.4.1"(或最新可用版本)。 避免删除package-lock。json马上。先试试这个,如果不行,再进一步。

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

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

我希望这能有所帮助。

我也遇到过这个问题,并通过从“react-scripts”:“3.x”升级react-scripts包来解决它。X "到"react-scripts": "^3.4.1"(或最新可用版本)。

删除“node_modules\”文件夹 删除package-lock。json文件 重写包。Json文件从"react-scripts": "3.x。X " to "react-scripts": "^3.4.1" 重新安装节点包 现在,启动项目npm start

而且很管用!!

如果你已经弹出,这是解决这个问题的正确方法:

找到这个文件config/webpackDevServer.config.js,然后在这个文件中找到以下一行:

app.use(noopServiceWorkerMiddleware());

你应该把它改成:

app.use(noopServiceWorkerMiddleware('/'));

对我(可能还有你们中的大多数人)来说,service worker是在项目的根源处服务的。如果它对你不同,你可以传递你的基路径。

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

对我有效的方法如下:

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

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

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