npmコマンドと対応するcomposerコマンド
他になんか新しいコマンド使ったら追記する
全体として
だいたい雰囲気は同じだけどパッケージ名がベンダー名とセットなのを留意
package.jsonファイル →composer.jsonファイルpackage.jsonのdependencies→composer.jsonのrequirepackage.jsonのdevDependencies→composer.jsonのrequire-devpackage-lock.jsonファイル →composer.lockファイル (バージョン管理には含めるべき)node_modulesフォルダ →vendorフォルダnode_modules/パッケージ名→vendor/ベンダー名/パッケージ名node_modules/.binフォルダ →vendor/binフォルダ
npm -v
composer に -v は無い
composer --versionnpm init
composer.json ファイルが作成される
composer initnpm list
インストール済みパッケージの一覧を表示
composer shownpm install -g <package>
COMPOSER_HOME にインストールされる。Windowsだと C:\Users\{ユーザー}\AppData\Roaming\Composer
composer require <vendor>/<package>npm install <package>
やると composer.json の require に追記される
composer require <vendor>/<package>composer require <vendor>/<package>:1.1npm install --save-dev <package>
やると composer.json の require-dev に追記される
composer require --dev <vendor>/<package>npm install
composer.lock ファイルがある場合、それを元にインストールされる。無ければ composer.json を元にパッケージをインストールし、composer.lock を作成する。
composer installnpm install --production
require-dev 抜き (require だけ) でインストールする
composer install --no-devnpm update <package>
やると composer.lock が更新される
composer update <vendor>/<package>npm remove <package>
やると composer.json の require から除去される
でも require-dev にしか無いパッケージを指定しても、消すか聞かれて、yesと言えば消してくれる
composer remove <vendor>/<package>npm remove --save-dev <package>
やると composer.json の require-dev から除去される
composer remove --dev <vendor>/<package>npm update
npm update の正確な挙動を把握してなくてあれなんだけど、composer では composer.json を元に最新のライブラリがインストールされて、composer.lock も更新されるらしい
composer updatenpm run <script>
composer <script>内容は composer.json に scripts として定義しておく
{
"scripts": {
"test": [
"phpunit"
]
}
}npm install -g npm
npm自体をバージョンアップできるのと同じように、composer自体をバージョンアップできる
composer self-update参考にさせていただいた記事
PHP開発でComposerを使わないなんてありえない!基礎編 - Qiita
composer install と composer updateの違い - Qiita
Composer は何者か。あるいは install と update の違い。そしてオートロードの仕組み。 | ごみばこいん Blog
キリウ君が読まないノート