すべてのnpmモジュールをグローバルに削除するコマンド?


381

すべてのグローバルnpmモジュールを削除するコマンドはありますか?そうでない場合、何を提案しますか?

回答:


501

次のコマンドは、すべてのグローバルnpmモジュールを削除します。注:これはWindowsでは機能しません。動作しているWindowsバージョンについては、Ollie Bennettの回答を参照してください。

npm ls -gp --depth=0 | awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}' | xargs npm -g rm

以下にその仕組みを示します。

  • npm ls -gp --depth=0すべてのグローバルトップレベルモジュールをリストします(lsのcliドキュメントを参照)
  • awk -F/ '/node_modules/ && !/\/npm$/ {print $NF}'実際にはnpm自体ではないすべてのモジュールを出力します(末尾がでない/npm
  • xargs npm -g rm 前のパイプから来るすべてのモジュールをグローバルに削除します

3
awkのゴルフ男ではないと、これはgrepをせずに、単一のawkコマンドで行うことができますawk -F' |@' '/@/ {if ($(NF-1) != "npm") {print $(NF-1)}}' 。説明:スペースの分割または@のみ@で行が一致し、モジュール名は、最後のマッチ(2番目になります$(NF-1))、これだけ印刷そうでない場合npm
Fotios 2013

28
警告:新しいバージョンはnpmモジュールを除外しません。あなたはそれを削除したくありません。
neverfox 2014年

9
また、コメントを読まずに新しいバージョンを実行しました。常にコメントを読んでください。NPMを復元する方法は次のとおりです:curl npmjs.org/install.sh | sh
ジャックアラン

12
ワオ。NPMでは、物事を簡単にアンインストールできません。bundlerとgemを使用すると、すべてをアンインストールするのは簡単です。grepなどを使用する必要があるという事実は恐ろしい設計です。これを行う簡単な方法はありますか?答えに必要なコードを実際に覚えているのは誰ですか?
Brian Dear

15
@neverfoxなど:修正、npm自体は削除されなくなりました。不便をおかけし申し訳ありません
カイSternad

268

Windowsを使用している場合、グローバルにインストールされたすべてのnpmパッケージを削除する最も簡単な方法は、次の内容を削除することです。

C:\Users\username\AppData\Roaming\npm

%appdata%/npmエクスプローラー、実行プロンプト、またはスタートメニューから入力することで、すばやくそこにたどり着くことができます。


5
これをありがとう、npm-cacheはどうですか、それも削除する必要がありますか?
Neil

2
npmフォルダーがある場合は削除しないでください
AutomatedMike

npmの新しいバージョンでは、これは%USERPROFILE%\AppData\npmなしでに移動したようroamingです。
リアム

1
すべてのパッケージを再インストールしていたところ、npm install再度実行するとEINTEGRITYエラーが発生しました。package-lock.jsonファイルも削除する必要がありました。
ToastyMallows

scoopを使用するWindowsの場合、パスはC:\ Users \ username \ scoop \ apps \ nodejs \ current \ bin \ node_modules
Ariel Mirra

176

私はKai Sternadの解決策を試しましたが、それは私には不完全に思えました。awkdepsツリー自体からの最後の後に残っている特別なシンボルがたくさんありました。

だから、私はカイ・スターナドの解決策を自分で修正しました(カシミヤのアイデアから少し助けて):

npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm|)$' | xargs -r npm -g rm

npm ls -gp --depth=0グローバルにインストールされたすべてのnpmモジュールを解析可能な形式で一覧表示します。

/home/leonid/local/lib
/home/leonid/local/lib/node_modules/bower
/home/leonid/local/lib/node_modules/coffee-script
...

awk -F/node_modules/ '{print $2}' パスからモジュール名を抽出し、グローバルにインストールされたすべてのモジュールのリストを形成します。

grep -vE '^(npm|)$' npm自体と空白行を削除します。

xargs -r npm -g rmnpm -g rmリスト内の各モジュールを呼び出します。

Kai Sternadのソリューションと同様に、* nixでのみ機能します。


1
これらのファイルがどこに保存されているか、私はこの方法が嫌いです。どこかにグローバルなpackage.jsonだけがないのですか?
エヴァンキャロル

2
@EvanCarrollいいえ、npmそのようなファイルはありませんが、すべてのグローバルモジュールを同じディレクトリにインストールします。正確な場所は異なる場合がありますが、通常は/usr/local/lib/node_modulesです。
Leonid Beschastny 14


11
このコマンドはOSXで機能し、npmを削除しませんnpm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | grep -vE '^(npm)$' | xargs npm -g rm
real_ate

2
このコマンドはスコープ付きパッケージ(など@angular/cli)の処理に失敗しました。私はのために別の照合を追加awkし、私のために働いコマンドは次のようになりますnpm ls -gp --depth=0 | awk -F/ '/node_modules\/@/ {print $(NF-1)"/"$NF} /node_modules\/[^@]/ && !/\/npm$/ {print $NF}' | xargs npm -g rm
ジャック・Q

64
sudo npm list -g --depth=0. | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}'  | sudo xargs npm remove -g

私のために働いた

  • sudo npm list -g --depth=0. インストールされているすべてのトップレベルをリストします
  • awk -F ' ' '{print $2}' ├──を取り除く
  • awk -F '@' '{print $1}' 「@」の前の部分を取得します
  • sudo xargs npm remove -g パッケージをグローバルに削除します

このバージョンは、2014年6月の時点で私に最も適していました。唯一の追加は、リストから「UNMET」の依存関係を除外することですが、npm remove UNMET単にNOOPを実行するので、これは重要ではありません。
kangax 14年

4
追加しますgrep -v npm:NPM自体は削除されないようにsudo npm list -g --depth=0. | grep -v npm | awk -F ' ' '{print $2}' | awk -F '@' '{print $1}' | sudo xargs npm remove -g
brauliobo

そこに行く、あなたのnpm!
すべてのІѕVаиітy

26

Powershellを使用している場合:

npm -gp ls --depth=0 | ForEach-Object { Get-Item $_ } | Where { $_.Name -ne 'npm' } | ForEach-Object { npm rm -g $_.Name }

キャッシュをクリアするには:

npm cache clear

22

%appdata%/npmディレクトリに切り替えて、次を実行してください...

for package in `ls node_modules`; do npm uninstall $package; done;

編集:このコマンドはnpm 3.3.6(ノード5.0)で中断します。現在、次のBashコマンドを使用しています。これは、.bashrcファイルのnpm_uninstall_allにマップしています。

npm uninstall `ls -1 node_modules | tr '/\n' ' '`

ボーナスを追加しましたか?とても速いです!

https://github.com/npm/npm/issues/10187

package.json(NPM)にリストされているすべての依存関係をどのようにアンインストールしますか?


これが大好き。より速くてシンプル:)私はちょうどgrep -v npmを使用し、そのn前にtr
apnerve

16

Windowsでは、「C:\ Users {username} \ AppData \ Roaming」ディレクトリに移動し、npmフォルダーを手動で削除します


1
これは、ここのWindowsで私たちにとって簡単で便利です。ありがとう。
rob2d

14

インストールしたすべてのパッケージを削除する場合は、npm -g lsコマンドを使用してそれらを検索し、次にnpm -g rmそれらを削除できます。


7

jqがインストールされている場合は、grep / awk / sedがなくても実行できます。

npm ls -g --json --depth=0 |
  jq -r '.dependencies|keys-["npm"]|join("\n")' |
  xargs npm rm -g

Debianおよび派生では、次のコマンドjqをインストールできます。

sudo apt-get install jq

これは、適切jsonなスタイルでの確かな答えです。
Richard Ayotte、2015年

sudoが必要な場合:npm ls -g --json --depth=0 | jq -r '.dependencies|keys-["npm"]|join("\n")' | xargs sudo npm rm -g
Roger

5

OPで指定されていないOS。以下のためのWindows、このスクリプトは、ローカルおよびユーザーのグローバルモジュールとキャッシュをNukeのために使用することができます。

私は上に気づいLinuxの世界的なルートは、システムの代わりに、指定したユーザーに、真にグローバルであること。そのため、共有システムでは、グローバルルートを削除することはお勧めできません。それはさておき、興味があればスクリプトをbashに移植できます。

以下のためのWindows、実行にcmdをファイルに保存します。

@ECHO OFF
SETLOCAL EnableDelayedExpansion 
SETLOCAL EnableExtensions

SET /A ecode=0

:: verify
SET /P conf="About to delete all global and local npm modules and clear the npm cache. Continue (y/[n])?
IF /I NOT "%conf%"=="y" (
  ECHO operation aborted
  SET /A ecode=!ecode!+1
  GOTO END
)

:: wipe global and local npm root
FOR %%a IN ("" "-g") DO (

  :: get root path into var
  SET cmd=npm root %%~a
  FOR /f "usebackq tokens=*" %%r IN (`!cmd!`) DO (SET npm_root=%%r)

  :: paranoid
  ECHO validating module path "!npm_root!"
  IF "!npm_root:~-12!"=="node_modules" (
    IF NOT EXIST "!npm_root!" (
      ECHO npm root does not exist "!npm_root!"
    ) ELSE (
      ECHO deleting "!npm_root!" ...
      :: delete
      RMDIR /S /Q "!npm_root!"
    )
  ) ELSE (
      ECHO suspicious npm root, ignoring "!npm_root!"
  )
)

:: clear the cache
ECHO clearing the npm cache ...
call npm cache clean

:: done
ECHO done

:END

ENDLOCAL & EXIT /b %ecode%

3

このコードを使用して、パッケージをアンインストールします。

npm rm -g <package_name>

1
問題は明確にALLであり、特定のパッケージ名ではありませんでした。
Polv

2

あなたはすべて良い仕事をしました。これは、提案を1行のコードにまとめたものです。

npm rm -g `npm ls -gp --depth=0 | awk -F/node_modules/ '{print $2}' | tr '/\n' ' '`

何が違うの?アンインストールは次のような単一のコマンドで行われます:npm rm -g *** *** ***


2

インストールされているすべてのnpmパッケージは、次の場所にあります。

C:\Users\username\AppData\Roaming\npm

削除したいnpmのコンテンツを削除します。

AppDataが表示されていない場合は、それが非表示になっていることを意味します。ファイルエクスプローラーの[表示]に移動して、非表示のアイテムをオンにすると、すべての非表示フォルダーを確認できます。


1

Windowsを使用していて、すべてのnode_modulesを削除/アンインストールする場合は、次の手順を実行する必要があります。

  1. Windowsコマンドプロンプトに移動
  2. node_modulesディレクトリに移動しますnode_modulesフォルダー内ではありません
  3. 以下のコマンドを入力して1〜2分間実行すると、node_module内のすべてのディレクトリがアンインストールされます

     rmdir /s /q node_modules

これがwindowsで誰かを助けることを願っています


1

Intellij Webstormを使用している場合は、組み込みのグラフィカルパッケージマネージャーを使用できます。

ルートとして開き、空のプロジェクトを作成します。に行く

ファイル>設定>言語とフレームワーク> Node.jsとNPM

そこには、インストールされているすべてのパッケージが表示されます。アンインストールは簡単です。アンインストールするパッケージを選択したり、選択を解除したりできます。Ctrl+ Aキーを押すこともできます。


1

ために yarn global

nano ~/.config/yarn/global/package.json
<Manually remove all packages from package.json>
yarn global add

または、実際に何が入っているかを気にしない場合 package.json

echo {} >  ~/.config/yarn/global/package.json && yarn global add

これはNPMにも当てはまるはずですが、NPMグローバルが格納されている場所が正確にわかりません。


0
npm ls -gp | awk -F/ '/node_modules/&&!/node_modules.*node_modules/&&!/npm/{print $NF}' | xargs npm rm -g


0

これは、npmにすべての作業を任せて試した、よりエレガントなソリューションです。

# On Linux Mint 19.1 Cinnamon
# First navigate to where your global packages are installed.

$ npm root # returns /where/your/node_modules/folder/is
$ cd /where/your/node_modules/folder/is # i.e for me it was cd /home/user/.npm-packages/lib/node_modules

あなたが行う場合、npm uninstallまたはnpm remove、彼らはプロジェクトの通常の依存関係であるかのように、これらのモジュールは、処理されます。完了すると、package-lock.jsonファイルも生成されます。

$ npm remove <package-name> # you may need sudo if it was installed using sudo  

-1

sedソリューション

npm -gp ls | sed -r '/npm$|(node_modules.*){2,}/d; s:.*/([^/]+)$:\1:g' | xargs npm rm -g

-5

コンソールに入れるだけです:

sudo npm list -g --depth = 0。| awk -F '' '{print $ 2}' | awk -F '@' '{print $ 1}' | sudo xargs npm remove -g

私にとってのその仕事...


1
この非常に同じページ、すでにここで言及されているソリューションの正確な一覧。
ivarni 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.