はじめに
composerとnpmについて調べてみたのでメモ
composerとは
PHPのパッケージ管理システム
https://qiita.com/niisan-tokyo/items/8cccec88d45f38171c94
-
composerでインストールしたライブラリ群は一括でvendorというディレクトリに放り込まれているので、このディレクトリだけignoreしてしまえばいいのです
-
ライブラリの依存性は別途作成されているcomposer.jsonに記載
-
クラスのautoloadクラスも提供
-
このcomposer.lockはcomposer.jsonにあるライブラリを取得するのに、実際にどのファイルを落としたのかをひとまとめにしたものです。
-
composerを使用してライブラリをインストールすると、vendor/autoload.phpというファイルが生成され、このファイルをrequireすることで、vendor配下のライブラリをオートロードできるように設定してくれるのです。
pearとは
phpのライブラリ
PHPのライブラリはほとんどComposer経由でインストールできるかと思いますが、稀にComposerに対応していないものもあり、その場合、pearから取得してくる必要があります。
composer コマンド
https://qiita.com/niisan-tokyo/items/8cccec88d45f38171c94
↑より以下参照
init
composer init
composer使ったプロジェクトを自作するときに使うものです
ちゃちゃっとライブラリ書きたい時とかに使います
対話式で幾つか設定を加える事もできますが、全部スキップしてもいいです
create-project
あるプロジェクトはプロジェクト作成時にテンプレートを用意してくれる場合があります
モダンなフレームワークはこのcreate-project
を使用してプロジェクトを生成してくれる場合が多いです。
例えば、laravel, cake3, bearsunday, auraなどです。
laravelの場合は以下のコマンドでプロジェクトを作成できます
composer create-project --prefer-dist laravel/laravel blog
require
composer require <package>[:<tag>]
composerを使ってライブラリやパッケージをインストールします
インストールされたライブラリの情報はcomposer.jsonに記載され、実際に何をインストールしたかの情報がcomposer.lockに記載されます
composerを使っている場合はなるべくcomposer require
を使用するようにしましょう
オプションとして--dev
をつけると、開発環境専用のパッケージとしてインストールすることができます。
これは、composer.jsonの中で、require-dev
の項目に追加されるということです
install
composer install
composer.jsonに記載されている内容、もしくはcomposer.lockに記載されている内容に従って、パッケージをインストールします
プロジェクトのメンバーは、このコマンドを使用することによって、パッケージの依存性を解決することができます。
パッケージが更新されたら、再度このコマンドを打つといいでしょう
update
composer update
composer.lockを無視してパッケージをcomposer.jsonを元にインストールします
現在の依存性を全部最新化したい時とかに使いますが、通常余り使う機会はないように思います。
remove
composer remove <package>
require
の逆で、パッケージを取り除きます
一応入れてみたけど、やっぱり使わないライブラリとかが出てきたら、こいつで取り除くといいでしょう。
なんのために使うかわからないライブラリやパッケージがあるのは、あまり気持ちの良いものではないので
dump-autoload
composer dump-autoload
先に述べた名前空間を吐き出させるコマンドです。
composer.jsonにautoloadの項目を追加した場合はこのコマンドを使ってオートローダを刷新しておくと良いでしょう
ファイル
composer.lock は実際にインストールされているライブラリ、バージョンが記載されている。
composer.json には、このアプリケーション(ライブラリ)が一体どのライブラリ、どのバージョンに依存しているかを記載する
composertコマンド
-
プロジェクトを作るのに、composer initかcomposer create-projectを使う。
続いて必要なパッケージを入れるために、composer require -
install
composer.json に基づいて依存関係を解決する
composer.lock というファイルが存在する場合は、それに従う。
コマンド
https://qiita.com/YusukeHigaki/items/47dd3ec23544225f7301
composerの提供するautoload
Composer の提供するオートローダーとは
https://reffect.co.jp/php/composer-autoload
参考
https://qiita.com/hashrock/items/15f4a4961183cfbb2658
https://qiita.com/msakamoto_sf/items/a1ae46979a42d6948ebd
Node.js
- JavaScript実行環境
- サーバ側でもJavaScriptが使えるようになり、サーバー側もクライアント側も全部JavaScriptだけで作れる
- Nodejsライブラリをインストールするための専用のツールとして、npmが用意された
npmとは
- パッケージ管理ツール
- Node.jsに組み込まれている
- npmを使いたければNode.jsが必要
npm
node.jsのパッケージ管理ツール
npm 使い方
npm init
- 実行すると対話形式で項目を入力して、package.jsonを作成します。
npm install -g
どのプロジェクトでも利用するようにグローバルに
-gオプションを付けずに実行した場合は、node_modulesにインストール
globalの場所の確認
$ sudo npm list -g | head
/home/ユーザー/.npm-global/lib
npm install gなし
package.jsonの内容に従って、カレントディレクトリのnode_modulesというフォルダ下に、ライブラリが保存。node_modules/が存在しない場合は作成される。
プロジェクト固有になる
npm install パッケージ
npm install --global // 省略記法 npm -i -g
npm install --save // 省略記法 npm -i -S npmバージョン4からは--saveオプションは省略可
npm isntall --save-dev // 省略記法 npm -i -D
--save-dev
devDependencies
開発時に必要なモジュール
--save
dependencies
実行時に必要なモジュール
その他
node_modulesというフォルダ下に、ライブラリが保存。node_modules/が存在しない場合は作成される。
デフォルトだとpackage.jsonに追記されない。
--save は package.json の dependencies(本番) に追記される。
--save-dev は package.json の devDependencies(開発、テスト) に追記される。-D は --save-devの略
--save-optional は package.json の optionalDependencies に追記される。
-
npmバージョン4からは--saveオプションは省略可
-
他の人が npm install した時に、dependencies に指定したパッケージが全てインストールされる。
-
ただし、利用者がpackage.json含めたソースコード全体をgitなどからcloneして開発する = 開発者と同等の立場として、追加パラメータ無しで package.json のあるディレクトリで npm install とだけした場合は、開発者の立場になるわけなので、devDependencies もインストールされる。
-
devDependencies に追記したものは開発時にのみ使うパッケージを指定するのに使う。開発者のみが使うため
package.json内に、どのライブラリを取ってきたのか記述
npm install パッケージ名 --save
package.jsonの内容に従って、packageをインストール
- npm install --productionとすると、devDependenciesはインストールされない
- npm install -g グローバルインストール
- npm install ローカルインストール
- npm install --save パッケージ名 でローカルインストール
- npm install --save-dev パッケージ名 でローカルインストールかつpackage.jsonのdevDependenciesにパッケージ情報が記載される
npm auditとは
/node_modules配下にインストールしたpackageの脆弱性をチェックしてくれるものです。
npm audit
npm auditとだけうつとチェックと結果のレポートを表示してくれます。
ビルド
npm run
npm scriptsと呼ばれるタスク実行機能を呼び出すコマンド
フロントエンドのビルド
npm run watch
ビルドコマンドは npm スクリプトにまとめられているので、以下のコマンドで監視モードのコンパイルが走ります。つまり一度コンパイルが走った後に監視モードに入り、ファイルの変更があるたびに自動的に再度コンパイルが実行されます。