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

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

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

我不知道为什么会这样。


当前回答

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

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

app.use(noopServiceWorkerMiddleware());

你应该把它改成:

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

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

其他回答

我也遇到过这个问题,并通过从“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

而且很管用!!

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

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

// The same error would occur. 

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

我们从react-scripts中弹出,因此不能简单地升级包。Json条目来修复这个问题。

相反,我们这样做了:

在新目录下创建一个新项目-> $> NPX create-react-app foo-project 然后弹出它-> CD ./foo-project && NPM运行弹出 现在将/foo-project/config中的文件复制到我们的主应用程序的config目录中,并启动您的开发服务器

希望这能帮助到其他有类似困境的人。

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

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

app.use(noopServiceWorkerMiddleware());

你应该把它改成:

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

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