Как решить "TypeError: process.getuid не является функцией" - PullRequest
25 голосов
/ 18 июня 2019

Я работаю с activ.js с laravel и наблюдаю за изменениями с yarn run watch, который работал нормально, пока я не начал сталкиваться с этой ошибкой в ​​веб-пакете всякий раз, когда я использовал yarn или npm после того, как сделал некоторые обновления для Windows 10 (я действительно неНе знаю, может ли это быть причиной) - Я бы хотел любую помощь.

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)

Ответы [ 3 ]

49 голосов
/ 18 июня 2019

У меня тоже была эта проблема. Я не уверен, что вызвало это, но удаление моей папки node_modules и повторный запуск "npm install" исправили это для меня.

16 голосов
/ 01 июля 2019

Это было случайно в понедельник, когда это случилось? Если это так, я считаю, что это связано с этой проблемой: https://github.com/webpack/webpack-cli/issues/962

Исходя из того, что я собираю, Webpack CLI, который использует Laravel Mix, пытается распечатать сообщение раз в шесть дней, в котором пользователю предлагается рассмотреть возможность пожертвования, но в последних версиях использовалась функция, недоступная в Windows. Изначально логика была добавлена ​​в качестве соображения для людей, которым надоело постоянно видеть сообщение, а затем доработана, чтобы избежать проблем с правами доступа к файлам для пользователей Mac и Linux, но последнее изменение вызвало проблемы для пользователей Windows только по понедельникам.

Решение, предложенное пользователем * rseeburg в этом потоке, заключалось в том, чтобы просто обернуть нарушающий код в try / catch. Тем не менее, похоже, что сообщение о пожертвовании было удалено с CLI 3.3.5 Webpack, поэтому обновление пакета должно исправить это. Я снова заработал, добавив "webpack-cli": "^3.3.5" в package.json, а затем yarn install.

0 голосов
/ 15 июля 2019

Вы можете сделать 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, который работает для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...