web-dev-qa-db-ja.com

npmパッケージをアンインストールする方法は?

Sudo npm install gruntを使用してgruntをインストールしましたが、削除できません。

私はもう試した:

$ Sudo npm uninstall grunt

しかし、それは私にWARNを与えます:

npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli"

rmremoveunlinkも試しました。および-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

npmのディレクトリが2つあるのはなぜですか?それらを削除するだけで安全ですか?

編集者注

この質問は5年以上前にnpmパッケージをアンインストールする方法として尋ねられました。問題の解決策を見つけた多くの人に好まれている非常に便利な質問でしたので、私はそれを呼び出した最近の編集から元に戻していますどのようにgruntパッケージをアンインストールするか他のnpmパッケージと同様の手順。

57
jcubic

プロジェクトnode_modulesフォルダーからnpmモジュールをアンインストールするには、次を実行します:

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バージョンがまだシステムに残っている可能性があります。これは、0.4.xよりも低いバージョンのgruntがグローバルにインストールされたため、バージョンをアップグレード/メンテナンスするときに多くの苦痛が生じたためです。
  • gruntgrunt-cliは2つの異なるものです。

    • grunt(「cli」なし)は、通常、package.jsonを実行してプロジェクトレベル(npm installdevDependencyとしてリストされている場合)にインストールされます。 ローカルインストールとも呼ばれます。
    • grunt-cliは、gruntのローカルバージョンがさまざまなプロジェクト/フォルダーで実行される基盤です。 canはローカルにインストールされますが、一度グローバルにインストールされるとより便利です。
  • gruntはローカルでのみインストールされます(npm install gruntを実行して)。

  • grunt-cliできればグローバルに(npm install -g grunt-cliを実行して)インストールされます。 grunt-cli公式のnpmページ まだ警告が表示されます グローバルにgrunt(cliなし)をインストールします。
  • grunt-cliのグローバルインストールをアンインストールする場合は、npm uninstall -g grunt-cliを実行します。 この問題 on gruntjs のプロジェクトはこの手順をサポートしています。
  • gruntをグローバルにインストールしないnpm install -g gruntを実行して)。

npmおよびSudo

Sudoは、npmではうまく機能しません。必要な場合にのみ使用してください。以下は、その使用の利点と欠点に関する2つの引用です。

引用Isaac Z. Schlueter彼の npmの紹介 の記事:

Sudoでパッケージ管理をしないことを強くお勧めします!パッケージは任意のスクリプトを実行できます。これにより、チェーンソーのヘアカットと同じくらい安全なパッケージマネージャーコマンドをsudoingできます。確かに、それは高速であり、間違いなくあらゆる障害を切り抜けようとしますが、実際にはその障害をそこに留めておきたいかもしれません。

代わりにこれを一度行うことをお勧めします:

Sudo chown -R $USER /usr/local

これにより、ユーザーアカウントが/ usr/localディレクトリの所有者として設定されるので、そこで通常のコマンドを発行できます。そうすれば、ノードをインストールしたりnpmコマンドを発行したりするときにSudoを使用する必要がなくなります。

この方法の方がはるかに優れています。結局、/ usr/localはインストールしたものであるはずです。

Andrei Karpushonak による別のキャッチ:

/ usr/localの所有権を現在のユーザーに変更することに関して、特定のセキュリティ上の懸念と機能制限があります。

そうは言っても、Sudoを使用せずにグローバルモジュールをインストールする場合、(実用的な観点から)言及されたものよりも良いソリューションはありません。セキュリティと使いやすさは非常に幅広いトピックであり、それに対する簡単な答えはありません-それは単にあなたの要件に依存します。

100

これと同じことが私にも起こりました。やって

which grunt

パス/ usr/local/bin /を取得しました。これの中にフォルダーのうなり声があった。ただし、コマンドを実行すると(パス/ usr/local/bin /からでも):

Sudo npm uninstall -g grunt

インストールされていない警告アンインストールを取得しました

解決策:コマンドを使用してインストールしたことが判明しました

Sudo npm install -g grunt-cli

削除しようとすると、うなり声を入力するだけでした

だから私が実行したら

Sudo npm unistall -g grunt-cli 

うなり声が削除されました。

あなたが実行していることについての質問に言及していますが

Sudo npm install grunt

しかし、あなたも同じ間違いをしているかどうかを確認し、grunt-cliで実行してください

5
Aditi Saxena

場合によっては、npmの「パッケージの削除」機能を使用する必要があります。

npm-パッケージを削除する

説明

「これにより、パッケージがアンインストールされ、npmに代わってインストールされたすべてのものが完全に削除されます。」

3番目のコードブロックで、次のメッセージを投稿しました。

npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli"

私はそれを使って

which grunt 

または

whereis grunt 

cLI /コンソールのコマンドは、不完全でわかりにくい出力を提供します。

これらのコマンドは両方ともgrunt-cliインストールのパスを返しますが、これを単にgruntとして返します。

また、使用して、

which grunt-cli

または

whereis grunt-cli

cLIコンソールに出力を返すことができません。これは、npmの名前空間の問題/機能だと思います。

上記の他の貢献者が推奨するように、npmのアンインストール機能を使用してgrunt-cliをアンインストールできないという状況もありました。

私のために働いた唯一のものは、以下に示すように、プログラムのフルネームでnpm remove関数を使用することでした。

npm rm -g grunt-cli

これにより、以下がコンソールに返されます。

unbuild grunt-cli@#.##.#

幸運を!

2
RunningTalus

最初にこれを使用

 which grunt-cli 

または

うめき声

これにより、モジュールへのパスが表示されます

私の場合、それは/ usr/local/bin /にありました

Binフォルダーに入ったら、書きました

 Sudo rm grunt 

そして、それはそれの終わりでした:)

2
azuneca

グローバルにインストールされている場合は、-guninstallに追加し、おそらくSudoが必要になります。

Sudo npm uninstall grunt -g