npm 패키지를 제거하는 방법은 무엇입니까?
를 grunt
사용하여 설치했는데 sudo npm install grunt
이제 제거 할 수 없습니다.
난 노력 했어:
$ sudo npm uninstall grunt
그러나 그것은 나에게 WARN
:
npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli"
나는 또한 시도했다 rm
, remove
하고 unlink
. 및 -g
옵션을 제공합니다.
npm WARN uninstall not installed in /usr/lib/node_modules: "grunt"
하지만 여전히 grunt
명령 줄에서 실행할 수 있습니다 .
편집 :
$ whereis grunt
grunt: /usr/local/bin/grunt
$ file /usr/local/bin/grunt
/usr/local/bin/grunt: symbolic link to `../lib/node_modules/grunt/bin/grunt'
$ ls /usr/local/lib/node_modules
grunt jshint
$ ls /usr/lib/node_modules
bower csslint devtools-terminal npm plato
2 개의 디렉토리가있는 이유는 무엇 npm
입니까? 삭제 만해도 안전한가요?
편집자 참고 :
이 질문은 5 년 전에 npm 패키지를 제거하는 방법 으로 요청 되었습니다 . 문제에 대한 해결책을 찾은 많은 사람들이 좋아하는 매우 유용한 질문 이었으므로 다른 패키지 와 동일한 절차가 필요하기 때문에 How to uninstall grunt package 라는 최근 편집에서 다시 변경하고 npm
있습니다.
npm
프로젝트 node_modules
폴더 에서 모듈 을 제거하려면 다음을 실행하십시오.
npm uninstall <module> --save
참고 npm
모듈이 들어있는 같은 디렉토리에서 제거해야 node_modules
이 명령을 실행하면 폴더에 있습니다. 이 --save
옵션은 또한 귀하의package.json
로컬 node_modules
폴더 에서 해당 디렉토리를 삭제하여 로컬 종속성 / 모듈 설치를 제거 할 수도 있습니다 . 예, 거기에서 종속성을 삭제하는 것이 안전합니다.
npm
전역 적으로 설치된 모듈 을 제거하려면 다음을 실행하십시오.
npm uninstall -g <module>
이 명령을 어디에서 실행하는지는 중요하지 않습니다.
npm
모듈 을 설치하려면 다음을 실행하십시오. (참조 용으로 만 사용)
npm install <module>
...또는:
npm install
( package.json
프로젝트 루트에 파일이있는 경우)
...또는:
npm install <module> --save-dev
(종속성에 최소 버전을 추가하려는 경우)
Grunt 에 대해 알아야 할 좋은 점 :
- 당신이 설치 한 경우
grunt
2013년 2월 18일 (전에 안정을 하루가grunt v0.4.x
발표되었다 ), 당신은 이전 할 수도 있습니다grunt
버전이 여전히 시스템에 남아있는. 그 이유 는 전 세계적으로 설치된grunt
것보다 낮은 버전이 버전을0.4.x
업그레이드 / 유지할 때 많은 고통을 야기 했기 때문 입니다. grunt
그리고grunt-cli
다른 두 가지입니다.grunt
(이하 "CLI"없이) 보통 (A로 나열 프로젝트 레벨에서 설치devDependency
에서package.json
실행하여)npm install
. 이를 로컬 설치 라고도 합니다 .grunt-cli
로컬 버전이grunt
서로 다른 프로젝트 / 폴더에서 실행 되는 기본 기반입니다 . 그것은 수 로컬로 설치되어 있지만 한 번, 전 세계적으로 설치할 때 더 유용하다.
grunt
로컬로만 설치됩니다 (를 실행하여npm install grunt
).grunt-cli
되고 바람직하게는 (실행하여 전체적으로 설치npm install -g grunt-cli
).grunt-cli
공식npm
페이지는 여전히grunt
전 세계적으로 (cli없이) 설치하는 것에 대해 경고합니다 .- 의 전역 설치를 제거하려면을
grunt-cli
실행npm uninstall -g grunt-cli
합니다. gruntjs 프로젝트 에 대한 이 문제 는이 절차를 지원합니다. grunt
전역으로 설치하지 마십시오 (를 실행하여npm install -g grunt
).
켜기 npm
및sudo
sudo
와 잘 작동하지 않습니다 npm
. 필요한 경우에만 사용하십시오. 다음은 사용의 장점과 단점에 대한 두 가지 인용문입니다.
Isaac Z. Schlueter의 npm 소개 기사 에서 인용 :
sudo로 패키지 관리를하지 않는 것이 좋습니다! 패키지는 임의의 스크립트를 실행할 수 있으므로 패키지 관리자 명령을 전기 톱 헤어컷만큼 안전하게 sudoing 할 수 있습니다. 물론 빠르고 확실하게 장애물을 통과 할 수 있지만 실제로 그 장애물이 거기에 머물기를 원할 수 있습니다.
대신 한 번 수행하는 것이 좋습니다.
sudo chown -R $USER /usr/local
그러면 사용자 계정이 / usr / local 디렉토리의 소유자로 설정되므로 거기에서 일반 명령을 실행할 수 있습니다. 그러면 노드를 설치하거나 npm 명령을 실행할 때 sudo를 사용할 필요가 없습니다.
이 방법이 훨씬 좋습니다. / usr / local은 결국 설치 한 항목이어야합니다.
Andrei Karpushonak이 언급 한 또 다른 캐치 :
/ usr / local의 소유권을 현재 사용자로 변경하는 것과 관련된 특정 보안 문제 및 기능 제한이 있습니다.
- if there is another user on the machine who could use global npm packages - do not change the ownership of /usr/local
- https://apple.stackexchange.com/questions/1393/are-my-permissions-for-usr-local-correct
- https://askubuntu.com/questions/261326/is-it-safe-to-chown-usr-local
Having said that, if you want to install global module without using sudo, I don't see any better solution (from pragmatic point of view) than mentioned. Security vs easy of use is very broad topic, and there is no easy answer for that - it just depends on your requirements.
This same thing happened with me. On doing
which grunt
I got path /usr/local/bin/. There was a folder grunt inside this . But on running command (even from within the path /usr/local/bin/):
sudo npm uninstall -g grunt
Got the warning uninstall not installed
Solution : turns out that I installed using command
sudo npm install -g grunt-cli
And while trying to remove was just typing grunt
So once I run
sudo npm unistall -g grunt-cli
grunt got removed.
Although you have mention in question that you run
sudo npm install grunt
But still check if you are also doing the same mistake and run it with grunt-cli
In some cases it may be necessary to use npm's "remove a package," feature.
Description
"This uninstalls a package, completely removing everything npm installed on its behalf."
On your third code block, you posted this message:
npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli"
I've found that using the
which grunt
or the
whereis grunt
commands in the CLI/console provides an incomplete and confusing output.
Both of these commands will return the path of the grunt-cli installation, but return this simply as grunt.
Also using,
which grunt-cli
or the
whereis grunt-cli
fails to return any output to the CLI console. I believe that this is a namespace issue/feature with npm.
I also had a situation where I was unable to uninstall the grunt-cli with npm's uninstall function as recommended by other contributors above.
The only thing that worked for me was using the npm remove function with the program's full name as demonstrated below.
npm rm -g grunt-cli
This should return the following to your console.
unbuild grunt-cli@#.##.#
Good Luck!
Use first this one
which grunt-cli
Or
which grunt
And this will show you the path to the module
In my case it was in the /usr/local/bin/
Once I got into the bin folder I just wrote
sudo rm grunt
And that was the end of it :)
If it's installed globally add -g
to uninstall
and probably you will need sudo
sudo npm uninstall grunt -g
참고URL : https://stackoverflow.com/questions/22642655/how-to-uninstall-npm-package
'programing tip' 카테고리의 다른 글
사용자 정의 비교기를 사용하여 C ++에서 priority_queue 선언 (0) | 2020.12.08 |
---|---|
Python의 다른 모듈에서 클래스를 패치하는 Monkey (0) | 2020.12.08 |
Pandas에서 색인 이름 제거 (0) | 2020.12.08 |
Docker 분리 모드 (0) | 2020.12.08 |
측정 된 신호의 피크 감지 (0) | 2020.12.08 |