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

Posted

技术标签:

【中文标题】如何解决“TypeError:process.getuid 不是函数”【英文标题】:How to solve "TypeError: process.getuid is not a function" 【发布时间】:2019-10-31 12:03:55 【问题描述】:

我正在使用 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)

【问题讨论】:

【参考方案1】:

我也遇到了这个问题。我不确定是什么原因造成的,但删除我的 node_modules 文件夹并重新运行“npm install”为我修复了它。

【讨论】:

有效!更改 package.json 中的名称后发生在我身上的问题【参考方案2】:

这件事发生在星期一是偶然的吗?如果是这样,我相信它与这个问题有关: https://github.com/webpack/webpack-cli/issues/962

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

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

【讨论】:

这似乎是完美的解决方案,我将其标记为答案。 我正在运行webpack-cli v3.3.9 并且刚刚发生这种情况。我将系统时钟设置为星期二,这暂时解决了问题【参考方案3】:

你可以做 3 件事来解决这个问题:

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

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于如何解决“TypeError:process.getuid 不是函数”的主要内容,如果未能解决你的问题,请参考以下文章

如何解决包冲突问题

如何解决包冲突问题

如何解决ajax跨域问题

MySQL 的 10048问题,如何解决?

如何解决smartgit的冲突问题

如何解决https传输图片的问题