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

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

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

我不知道为什么会这样。


当前回答

其他的解决方法对我都不起作用。

但是,将这个添加到我的包中。Json为我解决了这个问题:

"resolutions": {
  "react-dev-utils": "10.0.0"
},

其他回答

我尝试了上面描述的各种方法,但没有一个工作,因为我已经弹出了我的css。最后,应用以下步骤会有所帮助:

upgrade ereact-scripts from "react-scripts": "3.x。X " to "react-scripts": "^3.4.0" 降级react- devi -utils格式为"react- devi -utils": "^10.x. "X " to "react-dev-utils": "10.0.0" 删除node-modules文件夹和package-lock.json/yarn.lock 重新安装npm install/yarn install

如果你有一个弹出的create-react-app,我建议:

通过Create - React -app创建一个新的React应用。 通过npm run Eject或yarn Eject来弹出它。 安装package.json中缺少的所有包。 复制src文件夹,假设所有代码都位于该文件夹中。 如果需要,重做配置和脚本文件夹上的更改。

为我工作。

这与react无关,正如所指定的错误一样,undefined不被接受为path参数。确保没有将变量传递给path。恰巧未定义或为空的连接。 例如:

const {path} = require('path'); 
let arg = undefined;
let mypath = path.join(__dirname, arg);

// The same error would occur. 

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

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

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