programing tip

npm 패키지를 제거하는 방법은 무엇입니까?

itbloger 2020. 12. 8. 07:48
반응형

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 에 대해 알아야 할 좋은 점 :

  • 당신이 설치 한 경우 grunt2013년 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).

켜기 npmsudo

sudo와 잘 작동하지 않습니다 npm. 필요한 경우에만 사용하십시오. 다음은 사용의 장점과 단점에 대한 두 가지 인용문입니다.

Isaac Z. Schlueter의 npm 소개 기사 에서 인용 :

sudo로 패키지 관리를하지 않는 것이 좋습니다! 패키지는 임의의 스크립트를 실행할 수 있으므로 패키지 관리자 명령을 전기 톱 헤어컷만큼 안전하게 sudoing 할 수 있습니다. 물론 빠르고 확실하게 장애물을 통과 할 수 있지만 실제로 그 장애물이 거기에 머물기를 원할 수 있습니다.

대신 한 번 수행하는 것이 좋습니다.

sudo chown -R $USER /usr/local

그러면 사용자 계정이 / usr / local 디렉토리의 소유자로 설정되므로 거기에서 일반 명령을 실행할 수 있습니다. 그러면 노드를 설치하거나 npm 명령을 실행할 때 sudo를 사용할 필요가 없습니다.

이 방법이 훨씬 좋습니다. / usr / local은 결국 설치 한 항목이어야합니다.

Andrei Karpushonak이 언급 한 또 다른 캐치 :

/ 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.

npm - Remove a package

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

반응형