こうこく
作 ▸
改 ▸

npmコマンドと対応するcomposerコマンド

他になんか新しいコマンド使ったら追記する

npm 6.10.2Composer 1.9.0
もくじ

全体として

だいたい雰囲気は同じだけどパッケージ名がベンダー名とセットなのを留意

  • package.json ファイル → composer.json ファイル
  • package.jsondependenciescomposer.jsonrequire
  • package.jsondevDependenciescomposer.jsonrequire-dev
  • package-lock.json ファイル → composer.lock ファイル (バージョン管理には含めるべき)
  • node_modules フォルダ → vendor フォルダ
  • node_modules/パッケージ名vendor/ベンダー名/パッケージ名
  • node_modules/.bin フォルダ → vendor/bin フォルダ

npm -v

composer-v は無い

composer --version

npm init

composer.json ファイルが作成される

composer init

npm list

インストール済みパッケージの一覧を表示

composer show

npm install -g <package>

COMPOSER_HOME にインストールされる。Windowsだと C:\Users\{ユーザー}\AppData\Roaming\Composer

composer require <vendor>/<package>

npm install <package>

やると composer.jsonrequire に追記される

composer require <vendor>/<package>
バージョン指定
composer require <vendor>/<package>:1.1

npm install --save-dev <package>

やると composer.jsonrequire-dev に追記される

composer require --dev <vendor>/<package>

npm install

composer.lock ファイルがある場合、それを元にインストールされる。無ければ composer.json を元にパッケージをインストールし、composer.lock を作成する。

composer install

npm install --production

require-dev 抜き (require だけ) でインストールする

composer install --no-dev

npm update <package>

やると composer.lock が更新される

composer update <vendor>/<package>

npm remove <package>

やると composer.jsonrequire から除去される

でも require-dev にしか無いパッケージを指定しても、消すか聞かれて、yesと言えば消してくれる

composer remove <vendor>/<package>

npm remove --save-dev <package>

やると composer.jsonrequire-dev から除去される

composer remove --dev <vendor>/<package>

npm update

npm update の正確な挙動を把握してなくてあれなんだけど、composer では composer.json を元に最新のライブラリがインストールされて、composer.lock も更新されるらしい

composer update

npm run <script>

composer <script>

内容は composer.jsonscripts として定義しておく

{
	"scripts": {
		"test": [
			"phpunit"
		]
	}
}

npm install -g npm

npm自体をバージョンアップできるのと同じように、composer自体をバージョンアップできる

composer self-update

参考にさせていただいた記事

PHP開発でComposerを使わないなんてありえない!基礎編 - Qiita

composer install と composer updateの違い - Qiita

Composer は何者か。あるいは install と update の違い。そしてオートロードの仕組み。 | ごみばこいん Blog

npmのpackage.jsonと依存関係を理解しよう! - bagelee(ベーグリー)

Node.js – npmでパッケージを更新する | | KeruuWeb

この記事に何かあればこちらまで (非公開)