类型错误 [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。启动反应应用程序时引发的接收类型未定义

Fre*_*ett 242 javascript reactjs visual-studio-code redux yarnpkg

我正在 React 中处理一个项目,但遇到了一个让我难倒的问题。

每当我运行时,yarn start我都会收到此错误:

类型错误 [ERR_INVALID_ARG_TYPE]:“路径”参数必须是字符串类型。接收类型未定义

我不知道为什么会发生这种情况,如果有人遇到过这种情况,我将不胜感激。

小智 417

要解决此问题,只需升级react-scripts包(检查最新版本npm info react-scripts version):

  1. 在您的package.json 中 替换"react-scripts": "^3.x.x""react-scripts": "^3.4.1"(或最新的可用版本)
  2. (某些可选)删除您的node_modules文件夹
  3. 运行npm installyarn install

有人报告说这个问题是由运行引起的npm audit fix(避免它!)。

  • 这“刚刚开始”也发生在我身上,但实际上是在运行“npmauditfix”之后,以防万一这对任何人都有用。 (30认同)
  • 当确实从“3.3.0”升级到“3.4.0”时,我的问题得到了解决。奇怪的是,它在开发过程中突然停止工作,没有任何原因。 (14认同)
  • 你知道为什么会发生这种情况吗? (3认同)
  • 这在运行“npmauditfix”后开始发生 (3认同)
  • 仔细检查您的react-scripts版本是否在package.json中设置为^3.4.1。这是我的问题。如果设置不正确,无论重新安装多少次都不会起作用。 (2认同)

Ima*_*adi 57

如果您已弹出,这是解决此问题的正确方法:

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

app.use(noopServiceWorkerMiddleware());
Run Code Online (Sandbox Code Playgroud)

您应该将其更改为:

app.use(noopServiceWorkerMiddleware('/'));
Run Code Online (Sandbox Code Playgroud)

对我(可能还有你们中的大多数人)来说,服务工作者是在项目的根部提供服务的。如果您的情况不同,您可以改为传递您的基本路径。

  • 我认为 `app.use(noopServiceWorkerMiddleware(''));` 也可以根据我在这里看到和测试的内容工作 https://github.com/facebook/create-react-app/issues/8499#issuecomment-589561657 (2认同)
  • 是的,这也可能有效。我用“/”成功了,所以没有尝试其他事情。 (2认同)

Fat*_*ora 41

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

  1. 删除node_modules\文件夹
  2. 删除package-lock.json文件
  3. package.json文件改写"react-scripts": "3.x.x""react-scripts": "^3.4.1"
  4. 再次安装节点包 npm i
  5. 现在,开始项目 npm start

它有效!!


alb*_* sh 15

跑步npm i react-dev-utils@10.0.0解决了我的问题。

  • 我做了前面所有的事情,然后这个解决了它。 (4认同)

小智 9

我们退出了react-scripts,所以不能简单地升级 package.json 条目来解决这个问题。

相反,我们这样做了:1.) 在一个新目录中,创建一个新项目 -> $> npx create-react-app foo-project 2.) 然后弹出它 -> cd ./foo-project && npm run eject 3.) 现在将文件从 /foo-project/config 复制到我们主目录的 config 目录中应用程序并启动您的开发服务器

希望这可以帮助处于类似困境的其他人。


Sol*_*pov 8

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

我所做的基本上是将我的 src/components 复制到不同的目录中,然后删除所有节点模块和 package-lock.json(如果您在 Docker 容器中运行您的应用程序,请删除图像并重建它以确保安全);然后将它重置为我的最后一次提交,然后放回我的 src/components 然后运行npm i.

我希望它有帮助。


pau*_*nga 7

只需将 react-scripts 更新到最新版本即可。

yarn add react-scripts@latest
Run Code Online (Sandbox Code Playgroud)

或者如果使用 NPM

npm install react-scripts@latest
Run Code Online (Sandbox Code Playgroud)