LoginSignup
6
7

More than 3 years have passed since last update.

npmとcomposerについて調べてみた

Last updated at Posted at 2020-01-06

はじめに

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 スクリプトにまとめられているので、以下のコマンドで監視モードのコンパイルが走ります。つまり一度コンパイルが走った後に監視モードに入り、ファイルの変更があるたびに自動的に再度コンパイルが実行されます。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7