
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.xz
NodeJS 파일을 다운로드하세요.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
모두 설치하는 것이 가장 좋습니다 .nodejs
npm
사용 중인 npm 버전이 semver
설치된 Node JS 버전과 일치하지 않는 특정 위치에 있을 가능성이 매우 높습니다. 의 버전 nodejs
과 의 버전이 하나만 있고 npm
둘 다 기본 저장소를 사용하여 설치된 경우 완벽하게 작동합니다.
다음은 기본 Ubuntu 리포지토리를 사용하여 Node 및 npm을 작동시키는 데 대한 최선의 지침입니다.
sudo apt-get purge nodejs --auto-remove
그리고sudo apt-get purge npm --auto-remove
whereis node
: 한 번에 하나씩 모든 버전의 노드를 제거합니다. 이 명령이 뒤에 공백을 반환할 때까지 반복합니다node:
.sudo apt-get install nodejs
node --version
: 반환해야합니다... no such file or directory
nodejs --version
: 반환해야 합니다v1x.x.x
. 에서 설치한 버전입니다apt
. 아마도 Node JS 웹사이트에서 제공되는 최신 버전보다 최신 버전이 아닐 것입니다.sudo apt-get install npm
npm --version
nodejs
: 설치된 을 사용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