npm, yarn, pnpm, npx概論
npm, yarn, pnpmはそれぞれ別のパッケージマネージャー
※ 「パッケージマネージャー」は長いので今後このドキュメントでは「pm」と表記します
pythonではpoetryにあたります。
poetry add
がそれぞれ npm install
yarn add
pnpm add
にあたり、ライブラリを追加するとpyproject.tomlのようにpackage.jsonに追記され、poetry.lockのようなロックファイルを作成します。
この時プロジェクト直下にnode_modulesというフォルダが作成され追加されたライブラリ群の実体が格納されます。
KDOTのおすすめはpnpmです。
なぜならnode_modulesが小さくなり、実行速度も速いからです。
npx)
npx(eslintなど一部のライブラリは npm install
などによってpackage.jsonに追加すると npm exec eslint
(npm exec)などのようにシェルから直接実行可能になります。
npxはその「package.jsonに追加」の作業を飛ばすためのもので、 npx eslint
と打つだけでインストールから実行までを全てやってくれます。(この時インストールされたものはキャッシュは残りますがpackage.jsonには追加されません)
各パッケージマネージャーのcreateコマンド(yarn create, npm create, pnpm create)
createコマンドはnpxができる前、createをプレフィックスに持つライブラリ(create-react-appなど)に対してのみ実行を簡略化するために作られたコマンドです(yarn create)
今はnpxが上位互換なので使うケースは少ないです。
ただcreateをプレフィックスに持つライブラリにだけはcreateコマンドを使った方がいいです。
そういったライブラリの中にはcreateコマンドを実行したpmに合わせてロックファイルを変えてくれるものがあります。(create-react-appはその代表例)
なのでcreateをプレフィックスに持つライブラリにはcreateコマンドを使うようにしてください。