如何解决“ TypeError:process.getuid不是函数”

时间:2019-06-17 21:17:31

标签: node.js reactjs laravel npm webpack

我正在使用laravel运行react.js并使用yarn run watch观察更改,直到我在Windows 10进行一些更新后每次使用yarn或npm时,开始使用webpack遇到此错误之前,它都运行良好。真的不知道这是否可能是一个原因)-我很乐意提供帮助。

if (!e && fileOwnerId === process.getuid()) utimesSync(openCollectivePath, now, now)

错误:

TypeError: process.getuid is not a function at C:\project_path\node_modules\webpack-cli\bin\cli.js:352:43 at FSReqCallback.oncomplete (fs.js:153:23)

4 个答案:

答案 0 :(得分:49)

我也有这个问题。我不确定是什么原因造成的,但是删除我的node_modules文件夹并重新运行“ npm install”对我来说已经解决了。

答案 1 :(得分:16)

这是周一偶然发生的吗?如果是这样,我认为这与以下问题有关: https://github.com/webpack/webpack-cli/issues/962

从我收集的Webpack CLI中,Laravel Mix使用该Web CLI尝试每六天打印一次消息,要求用户考虑捐赠,但是最新版本依赖于Windows中不可用的功能。最初添加逻辑是为了让那些不断看到消息困扰的人考虑,后来又进行了调整以避免Mac和Linux用户的文件权限问题,但后者的更改仅在星期一对Windows用户造成了问题。

用户rseeburg的

A solution proposed在该线程中只是将有问题的代码包装在try / catch中。但是,从Webpack CLI 3.3.5开始,它看起来像捐赠消息has been removed,因此更新软件包应该对其进行修复。通过将"webpack-cli": "^3.3.5"添加到package.json,然后添加yarn install,使它再次工作。

答案 2 :(得分:0)

您可以做三件事来解决此问题:

1 -通过将您的日期更改为星期一以外的任何一天,因为此功能如果

 const now = new Date();
if (now.getDay() === MONDAY) {
    const { access, constants, statSync, utimesSync } = require("fs");
    const lastPrint = statSync(openCollectivePath).atime;
    const lastPrintTS = new Date(lastPrint).getTime();
    const timeSinceLastPrint = now.getTime() - lastPrintTS;
    if (timeSinceLastPrint > SIX_DAYS) {
        require(openCollectivePath);
        // On windows we need to manually update the atime
        access(openCollectivePath, constants.W_OK, e => {
            if (!e) utimesSync(openCollectivePath, now, now);
        });
    }
}

关于捐赠给他们的包裹

2 -删除该条件fileOwnerId === process.getuid()),但不适用于Windows用户,因此您可以做最后一件事

3 -将此"webpack-cli": "^3.3.5"添加到您的package.json依赖项中,并运行对我有用的npm

答案 3 :(得分:0)

仅运行npm install 为我解决了。不必删除任何文件夹