npmアンインストールを使用すると、package.jsonから依存関係が自動的に削除されます


84

npm initこれを使用してpackage.jsonに依存関係を追加した後:

npm install package --save

そして、私uninstallはパッケージを作りたいと言います、そして私はそうすることによってそうします:

npm uninstall package

しかし、手動でファイルに移動してその行を削除しなくても、それに応じてpackage.jsonも更新する必要があります。

npmのドキュメントからそれは言う:

これは厳密に加算的であるため、本当に正当な理由がない限り、package.jsonからオプションを削除することはありません。

だから、これが可能かどうか知りたかっただけです。


(--save)フラグを付けてインストールすると、依存関係がpackage.jsonに自動的に追加されるため、パッケージをアンインストールするたびに、package.jsonから依存関係を削除する方法があるかどうか疑問に思いました。
叫び声2013年

回答:


150

同じ--saveフラグを使用します。依存関係をインストールした場合:

$> npm install grunt-cli --save

以下を使用して、package.jsonを更新してアンインストールできます。

$> npm uninstall grunt-cli --save

'save'フラグは、実行した操作に基づいてpackage.jsonを更新するようにnpmに指示します。


3
私はember-cliでnpmを使用しており、の--save-dev代わりに使用する必要がありました--save
gerry3 2015

4
--save-devを使用してインストールした場合、-savedependenciesはpackage.jsonファイルのセクションに保存されるのに対し、-save-devはdevDependenciesセクションに保存されるため、アンインストールも--save-devになります
Mike ' Pomax'Kamermans 2015

7
私はこの質問を投稿してからずっと来ました、そしてここに少しプロのヒントがあります。リストに追加したり、に追加したりnpm i <package_name> -Sするために使用できます。同じフラグが、またはdependenciesnpm i <package_name> -Ddev-dependenciesnpm rm <package_name> -Snpm rm <package_name> -D
shriek 2015

1
ただし、これらは単に--saveおよび--save-devに相当する省略形のフラグであることに注意してください。npm helpすべてのフラグとそれに相当する省略形については、を参照してください。(-Sまたは--saveを使用してインストールし、どちらかを使用してアンインストールする場合も、npmはそれらを異なるものとは見なしません。
Mike'Pomax 'Kamermans 2015

1
あなたは男性の間で聖人です。
ジョンフォンノイマン

0

私の場合、-saveはpackage.jsonからエントリをクリアしませんでした。これは、ionic-checkによって提案されたコマンドです。は、アンインストールがエラーで終了した場合、package.jsonは更新されないと思います。その場合、オプションしかありません。 package.jsonを手動で変更するには、これは面倒ですが、私が推測する唯一の方法です

更新

アクティブな他のパッケージに依存関係があるパッケージをアンインストールすると、アンインストールがエラー/警告で失敗する可能性があります。安全な方法は、依存関係グラフに従って、使用可能なツールがあるかどうかわからない、そのような操作で便利なツール、警告です。 「ピアの依存関係をインストールする必要があります。」というメッセージはかなり誤解を招く可能性がありますが、パッケージをアンインストールするときには意味がありません。


1
これは必要ではないはずです。dependenciesリストにある場合uninstall --save 、他の何かがそれに依存しているかどうかに関係なく、削除する必要があります。NPMはかなり巧妙な依存関係のフラット化を使用するため、依存関係リストにXが(明示的に)含まれていて、X --saveをアンインストールすると、Xは削除されます。しかし、複数の依存関係リストがあることを覚えておいてください、と--save同じではない--save-dev--save-prodまたは、--save-optional。また、はい:uninstallエラーが発生した場合、NPMはそのエラーで停止します。正確性を保証できなくなったため、続行しようとはしません。
Mike'Pomax 'Kamermans18年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.