Sudo npm install grunt
を使用して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
npm
のディレクトリが2つあるのはなぜですか?それらを削除するだけで安全ですか?
編集者注:
この質問は5年以上前にnpmパッケージをアンインストールする方法として尋ねられました。問題の解決策を見つけた多くの人に好まれている非常に便利な質問でしたので、私はそれを呼び出した最近の編集から元に戻していますどのようにgruntパッケージをアンインストールするか他のnpm
パッケージと同様の手順。
プロジェクト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
がグローバルにインストールされたため、バージョンをアップグレード/メンテナンスするときに多くの苦痛が生じたためです。grunt
とgrunt-cli
は2つの異なるものです。
grunt
(「cli」なし)は、通常、package.json
を実行してプロジェクトレベル(npm install
でdevDependency
としてリストされている場合)にインストールされます。 ローカルインストールとも呼ばれます。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の所有権を現在のユーザーに変更することに関して、特定のセキュリティ上の懸念と機能制限があります。
- マシン上にグローバルnpmパッケージを使用できる別のユーザーがいる場合-/ 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
そうは言っても、Sudoを使用せずにグローバルモジュールをインストールする場合、(実用的な観点から)言及されたものよりも良いソリューションはありません。セキュリティと使いやすさは非常に幅広いトピックであり、それに対する簡単な答えはありません-それは単にあなたの要件に依存します。
これと同じことが私にも起こりました。やって
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で実行してください
場合によっては、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@#.##.#
幸運を!
最初にこれを使用
which grunt-cli
または
うめき声
これにより、モジュールへのパスが表示されます
私の場合、それは/ usr/local/bin /にありました
Binフォルダーに入ったら、書きました
Sudo rm grunt
そして、それはそれの終わりでした:)
グローバルにインストールされている場合は、-g
をuninstall
に追加し、おそらくSudo
が必要になります。
Sudo npm uninstall grunt -g