TypeError [ERR_INVALID_ARG_TYPE]:“ path”参数必须为字符串类型。启动React App时收到的未定义类型引发


92

我正在React的一个项目上工作,遇到了一个让我感到困惑的问题。

每当我运行时yarn start,都会出现此错误:

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

我不知道为什么会这样,如果有人经历过,我将不胜感激。


尝试再次删除并重新安装节点模块。
Astrit Spanca

Answers:


177

要解决此问题,只需升级到 "react-scripts": "^3.4.0"

  1. 覆盖现有的"react-scripts": "^3.x.x""react-scripts": "^3.4.0"你的package.json
  2. 删除您的节点模块
  3. 运行npm install或yarn install

我希望它可以更快地解决您


11
在过去的24小时内拔掉头发试图解决这个问题。该解决方案非常适合我。非常感谢。
Rapid537

4
npm是一大堆
排泄

8
当确实从升级3.3.0到时,我的问题已解决3.4.0。奇怪的是,它在开发过程中就没有任何理由就停止了工作。
抽象算法

3
你知道为什么会这样吗?
Ilyas karim

10
这个“刚刚开始”也发生在我身上,但实际上是在运行之后npm audit fix,以防对任何人有用。
Jeremy Jones

19

我也通过升级面临这个问题,并找出它react-scripts从包装"react-scripts": "3.x.x""react-scripts": "^3.4.0"

  1. 删除资料node_modules\
  2. 删除package-lock.json档案
  3. 重写package.json从文件"react-scripts": "3.x.x""react-scripts": "^3.4.0"
  4. 再次安装节点软件包 npm i
  5. 现在,开始项目 npm start

而且有效!!


7

我们从中弹出react-scripts,因此不能简单地升级package.json条目来解决此问题。

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

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


6

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

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

希望对您有所帮助。


2
  1. 转到你package.json

  2. 在依赖项中将“ react-scripts”:“ 3.xx”更改为“ react-scripts”:“ ^ 3.4.0”

  3. 重新安装react-scripts: npm I react-scripts

  4. 开始您的项目: npm start


0

如果您弹出 create-react-app,我建议:

  1. 通过创建一个新的React应用create-react-app
  2. 通过npm run eject或将其弹出yarn eject
  3. 安装缺少的所有软件包package.json
  4. 假设所有代码都位于该文件夹中,请复制src文件夹。
  5. 如果需要,请在configscript文件夹上重做更改。

为我工作。


0

我尝试了上述各种方法,但是自从弹出 CSS 以来,它们都没有起作用。最终应用以下步骤有助于:

  1. react-scripts从升级"react-scripts": "3.x.x""react-scripts": "^3.4.0"
  2. 降级react-dev-utils形式"react-dev-utils": "^10.x.x""react-dev-utils": "10.0.0"
  3. 删除node-modules文件夹和package-lock.json/yarn.lock
  4. 重新安装软件包npm install/yarn install

0

如果您弹出并感到好奇,那么CRA存储库上的此更改就是导致该错误的原因。

要解决此问题,您需要应用他们的更改;即最后一组文件:

  • 包/反应脚本/config/paths.js
  • 包/反应脚本/config/webpack.config.js
  • 包/反应脚本/config/webpackDevServer.config.js
  • 包/反应脚本/package.json
  • 包/反应脚本/脚本/build.js
  • 包/反应脚本/脚本/start.js

就个人而言,我认为您应该手动应用更改,因为,除非一直保持所有更改的最新状态,否则您可能会在webpack捆绑包中引入另一个错误(由于依赖项不匹配或其他原因)。

或者,您可以按照Geo Angelopoulos的建议进行操作。这可能需要一段时间,但至少您的项目将与CRA存储库同步(并获得其所有最新增强功能!)。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.