programing

"TypeError: process.getuid가 함수가 아닙니다"를 해결하는 방법

newstyles 2023. 4. 4. 21:10

"TypeError: process.getuid가 함수가 아닙니다"를 해결하는 방법

respect.js를 larabel과 함께 실행하고 있습니다.또한 이들과 함께 변화하고 있는 것을 보고 있습니다.yarn run watchwindows 10을 업데이트한 후 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)

나도 방금 이 문제가 있었어.원인은 알 수 없지만 node_modules 폴더를 삭제하고 "npm install"을 다시 실행하면 수정되었습니다.

이런 일이 일어난 게 월요일이었나요?그렇다면 이 문제와 관련이 있다고 생각합니다.https://github.com/webpack/webpack-cli/issues/962

Laravel Mix가 사용하고 있는 Webpack CLI에 따르면, 6일에 한 번 사용자에게 기부를 검토하도록 요구하는 메시지를 인쇄하려고 하지만, 최근 버전은 Windows에서 사용할 수 없는 기능에 의존했습니다.이 로직은 원래 메시지를 계속 보는 것에 시달리는 사람들을 위한 고려사항으로 추가되었다가 나중에 Mac과 Linux 사용자의 파일 권한 문제를 피하기 위해 수정되었지만, 후자의 변경으로 인해 월요일에만 Windows 사용자에게 문제가 발생했습니다.

스레드에서 사용자 rseeburg가 제안한 솔루션은 단순히 문제 코드를 시도/캐치하는 것이었습니다.단, Webpack CLI 3.3.5에서 기부 메시지가 삭제된 것으로 보이므로 패키지를 업데이트하면 문제가 해결됩니다.나는 그것을 다시 작동시키기 위해"webpack-cli": "^3.3.5"패키지화 합니다.json에 이어yarn install.

이 문제를 해결하려면 다음 세 가지를 수행할 수 있습니다.

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나한테는 효과가 있어

단순하게 실행npm install폴더를 삭제할 필요가 없었습니다.

언급URL : https://stackoverflow.com/questions/56639025/how-to-solve-typeerror-process-getuid-is-not-a-function