node.jsのnpmでlsを実行するとdedupedが表示される。
/app $ npm ls minimist
mastogetter@0.0.1 /app
+-- ava@3.5.0
| `-- update-notifier@4.1.0
| `-- latest-version@5.1.0
| `-- package-json@6.5.0
| `-- registry-auth-token@4.1.1
| `-- rc@1.2.8
| `-- minimist@1.2.5 deduped # ← これ
`-- eslint@6.8.0
+-- file-entry-cache@5.0.1
| `-- flat-cache@2.0.1
| `-- write@1.0.3
| `-- mkdirp@0.5.3
| `-- minimist@1.2.5 deduped # ← これ
`-- mkdirp@0.5.3
`-- minimist@1.2.5 # ← でも、これには付いてない
deduped とは
すでに同じ
npmパッケージが読み込まれているので除外したという意味。
npm ls コマンド実行時に表示される deduped とは、de-duplicated の略です。
de- は、デフラグやデトックスとかの de で、「取り除く」「除外」などを意味します。つまり duplication(重複)を reduce(除外)したという意味です。
日本語で言うと「同じ npm パッケージ、及びバージョンのパッケージがインストール済みなので、インストールされなかった依存パッケージである」という意味です。つまり、容量を確保するための仕組みによるものです。
この除外処理は npm install などの後に自動実行されます。
しかし、パッケージのアーカイブを手動でインストールした場合など、意図せずパッケージが重複していることがあり、明示的に実行したいことがあります。npm dedupe もしくは npm ddp コマンドで、手動でも重複パッケージを削除できます。
そして、手動もしくは自動でコマンドが実行されると、npm ls 時に削除された依存パッケージに deduped と表示されます。
「(なんだよ、deprecated みたいな、やばちんなパッケージなのかと思ったじゃんか)ホッ」
参考文献
- What is deduped in npm packages list? のコメント @ StackOverflow
- dedupe | CLI commands @ 公式 npm ドキュメント
- インストール済みのパッケージ一覧を表示する @ Qiita