web-dev-qa-db-ja.com

Package.jsonに含まれていないパッケージのnode_modulesフォルダをクリーンアップする方法は?

インストールするモジュールについてnpm installを調べるpackage.jsonを使ってプロジェクトパッケージをインストールするとします。しばらくして、私は特定のモジュールを必要としないこと、そしてその依存関係をpackage.jsonから削除することがわかりました。それから私はpackage.jsonから他のいくつかのモジュールを取り除きます。

node_modulesにリストされたモジュールだけがそこに残り、残りはpackage.jsonのように行かなければならないように、今私はnpm cleanフォルダをきれいにしたいです。私はそれらを手動で削除できることを知っていますが、そのためにいくつかのNiceに砂糖機能を使用させたいと思います。

265
Sergei Basharov

npm Pruneを探していると思います

npm Prune [<name> [<name ...]]

このコマンドは「無関係な」パッケージを削除します。パッケージ名が指定されている場合は、指定された名前のいずれかに一致するパッケージのみが削除されます。

無関係なパッケージは、親パッケージの依存関係リストに記載されていないパッケージです。

ドキュメントを参照してください: https://docs.npmjs.com/cli/Prune

348
David Sherret

Node_modules /フォルダーを削除してからpackage.jsonから依存関係を再インストールすることができます。

rm -rf node_modules/
npm install

これにより、現在のフォルダーにインストールされているすべてのパッケージが消去され、package.jsonからの依存関係のみがインストールされます。依存関係が以前にインストールされている場合は、npmはキャッシュされたバージョンを使用しようとし、2回目に依存関係をダウンロードすることを避けます。

155
adamduren

フォルダが入れ子になっているため、名前が長すぎるため、Windowsではフォルダを削除できません。これを解決するには、RimRafをインストールします。

npm install rimraf -g

rimraf node_modules
89
user3844078

最初にグローバルにrimrafをインストールする

npm install rimraf -g

node_modulesフォルダのcmdを使ってパスに移動し、以下のコマンドを適用

rimraf node_modules
18
Ankit Parmar

単純な実行

rm -r node_modules

実際には、これで任意のフォルダを削除することができます。

rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete

gitbash を開いてフォルダのルートに移動し、このコマンドを実行してください。

これが役立つことを願っています。

14
Ajay Kotnala

Npmプルーンを試しましたか?

パッケージファイルに記載されていないものはすべてアンインストールされます。

https://npmjs.org/doc/cli/npm-Prune.html

Windowsユーザーのために、ここにリストされているそのようなフォルダを削除するための代替ソリューション: http://ask.osify.com/qa/567

その中で、無料のツール: ロングパスフィクサー は試してみるのが良いです: http://corz.org/windows/software/accessories/Long-Path-Fixer-for-Windows.php

2
Osify

Package-lock.jsonで不要なパッケージを削除/編集します(パッケージ名は依存関係とdevDependenciesに書き込まれます)。

npm install

0
Fakrudeen

Package.json内にいくつかの行を追加しました:

"scripts": {
  ...
  "clean": "rmdir /s /q node_modules",
  "reinstall": "npm run clean && npm install",
  "rebuild": "npm run clean && npm install && rmdir /s /q dist && npm run build --prod",
  ...
}

cleanのみを使用する場合は、このrimraf node_modulesまたはrm -rf node_modulesのみを使用できます。

うまくいく

0
Amitesh Singh