Npm은 Ubuntu 19.04에서 모듈 "semver" 오류를 찾을 수 없습니다.

Npm은 Ubuntu 19.04에서 모듈 "semver" 오류를 찾을 수 없습니다.

npm 명령을 실행하려고 할 때마다 다음 오류가 발생합니다.

internal/modules/cjs/loader.js:626
throw err;
^

Error: Cannot find module 'semver'
Require stack:
- /usr/share/npm/lib/utils/unsupported.js
- /usr/share/npm/bin/npm-cli.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:623:15)
    at Function.Module._load (internal/modules/cjs/loader.js:527:27)
    at Module.require (internal/modules/cjs/loader.js:681:19)
    at require (internal/modules/cjs/helpers.js:16:16)
    at Object.<anonymous> (/usr/share/npm/lib/utils/unsupported.js:2:14)
    at Module._compile (internal/modules/cjs/loader.js:774:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
    at Module.load (internal/modules/cjs/loader.js:641:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Module.require (internal/modules/cjs/loader.js:681:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/usr/share/npm/lib/utils/unsupported.js',
    '/usr/share/npm/bin/npm-cli.js'
  ]
}

저는 기본적으로 FreeCodeCamp를 오프라인에서 사용하려고 했습니다. 이 오류가 발생하기 시작한 'npm ci' 명령을 실행하라는 메시지가 표시되었습니다.

npm을 다시 설치해 보았지만 작동하지 않습니다. 나는 또한 도움이 되지 않은 semver 모듈을 설치해 보았습니다.

무엇이 잘못되었을 수 있으며 어떻게 해결할 수 있나요?

답변1

비슷한 질문을 찾았습니다여기그리고 그 대답은 효과가 있었습니다.

sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* ~/.npm
sudo rm -rf /usr/local/lib/node*
sudo rm -rf /usr/local/bin/node*
sudo rm -rf /usr/local/include/node*

sudo apt-get purge nodejs npm
sudo apt autoremove

다음에서 최신 tar.xzNodeJS 파일을 다운로드하세요.https://nodejs.org/en/download/

tar -xf node-v#.#.#-linux-x64.tar.xz
sudo mv node-v#.#.#-linux-x64/bin/* /usr/local/bin/
sudo mv node-v#.#.#-linux-x64/lib/node_modules/ /usr/local/lib/

#.#.#다운로드한 버전은 어디에 있나요?

다음을 사용하여 설치 확인

node -v
npm -v

답변2

Node JS/npm을 관리하는 방법에 따라 다릅니다.

Bilbo Baggins가 제안한 대로 공식 웹사이트에서 Node JS의 최신 LTS 버전을 설치할 수 있습니다.https://nodejs.org/en/download/.

Ubuntu에서 를 사용하여 기본 저장소를 통해 Node를 관리하려면 이 방법으로 두 가지 를 apt모두 설치하는 것이 가장 좋습니다 .nodejsnpm

사용 중인 npm 버전이 semver설치된 Node JS 버전과 일치하지 않는 특정 위치에 있을 가능성이 매우 높습니다. 의 버전 nodejs과 의 버전이 하나만 있고 npm둘 다 기본 저장소를 사용하여 설치된 경우 완벽하게 작동합니다.

다음은 기본 Ubuntu 리포지토리를 사용하여 Node 및 npm을 작동시키는 데 대한 최선의 지침입니다.

  1. sudo apt-get purge nodejs --auto-remove그리고sudo apt-get purge npm --auto-remove
  2. whereis node: 한 번에 하나씩 모든 버전의 노드를 제거합니다. 이 명령이 뒤에 공백을 반환할 때까지 반복합니다 node:.
  3. sudo apt-get install nodejs
  4. node --version: 반환해야합니다... no such file or directory
  5. nodejs --version: 반환해야 합니다 v1x.x.x. 에서 설치한 버전입니다 apt. 아마도 Node JS 웹사이트에서 제공되는 최신 버전보다 최신 버전이 아닐 것입니다.
  6. sudo apt-get install npm
  7. npm --versionnodejs: 설치된 을 사용 apt하고 올바르게 작동합니다.

답변3

노드 버전을 관리하기 위해 nvm을 사용하고 있었습니다. 제 경우에는 npm syslink가 손상되었습니다. 노드를 제거한 다음 다시 설치하여 문제를 해결했습니다.

다음을 사용하여 노드 버전을 확인하세요.node --version

그런 다음 실행nvm uninstall <your version>

그런 다음 다음을 사용하여 다시 설치하십시오.nvm install <your version

답변4

나는 같은 문제가 있었지만 22.04에있었습니다. 위의 어느 것도 나에게 효과가 없었지만 이 프로세스가 효과가 있다는 것을 알았습니다. https://codemarvels.in/2021/03/20/npm-install-gives-error-cannot-find-module-semver/ 기본적으로:

sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* ~/.npm
sudo rm -rf /usr/local/lib/node*
sudo rm -rf /usr/local/bin/node*
sudo rm -rf /usr/local/include/node*
sudo apt-get purge nodejs npm
sudo apt autoremove
sudo apt-get install nodejs npm

관련 정보