pnpmとnpmの比較
npmの平坦なツリー構造
npm maintains a flattened dependency tree as of version 3. This leads to less
disk space bloat, with a messy node_modules
directory as a side effect.
On the other hand, pnpm manages node_modules
by using hard linking and
symbolic linking to a global on-disk content-addressable store. This lets you get the benefits of far less disk space usage, while also keeping your
node_modules
clean. There is documentation on the store layout if you wish
to learn more.
The good thing about pnpm's proper node_modules
structure is that it
"helps to avoid silly bugs" by making it impossible to use modules that are not
specified in the project's package.json
.
インストール
pnpm does not allow installation of packages without saving them to
package.json
. If no parameters are passed to pnpm add
, packages are saved as
regular dependencies. Like with npm, --save-dev
and --save-optional
can be
used to install packages as dev or optional dependencies.
結果として、依存関係を削除して、孤立したパッケージだけを残したりしない限り、pnpmを使っていれば無関係なパッケージをプロジェクトに残してしまうことは無くなるでしょう。 That's why pnpm's implementation of the prune command does not allow you to specify packages to prune - it ALWAYS removes all extraneous and orphaned packages.