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

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

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

我不知道为什么会这样。


当前回答

将HOME环境变量设置为适当的值为我修复了这个问题。

其他回答

我在流水线上运行时也遇到了同样的问题。

对我来说,问题是我在docker容器中使用的节点版本为v10.0.0。

更新到v14.7.0为我解决了这个问题

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

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

// The same error would occur. 

我也有同样的问题,运行npm install react-scripts@latest解决了我的问题。

就我而言,这是因为我(一度)安装了reactn,它也包含了自己的React版本(出于某种原因)。

安装完成后(即使再次卸载),仍会出现此错误。

我只是删除了node_modules并再次运行npm install,它工作了。

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

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