[解決済み] composer.jsonのrequireセクションとrequire-devセクションの違いは何ですか?
2022-07-13 21:40:44
質問
composerを使い始めたのですが、ほとんど知識がなく、Webアプリケーションの開発経験もほとんどありません。
私はただ Nettuts+ チュートリアル を読んだばかりなので、コンポーザーについて基本的な質問があります。
{
"require": {
"laravel/framework": "4.0.*",
"way/generators": "dev-master",
"twitter/bootstrap": "dev-master",
"conarwelsh/mustache-l4": "dev-master"
},
"require-dev": {
"phpunit/phpunit": "3.7.*",
"mockery/mockery": "0.7.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-update-cmd": "php artisan optimize"
},
"minimum-stability": "dev"
}
-
に表示されるものはすべて
"require-dev"
の部分に表示されるものは、ダウンロードとインストールはcomposer install --dev
? -
composer のドキュメントをいくつか読んでみましたが、 なぜ
"require-dev"
の部分があるのはなぜでしょうか? それは、特定の バージョン を取得したいからでしょうか?
どのように解決するのですか?
さまざまな環境
一般的に、ソフトウェアは異なる環境で動作します。
-
development
-
testing
-
staging
-
production
異なる環境での異なる依存性
で宣言されている依存関係は
require
セクションの
composer.json
のアプリケーションやパッケージの実行に必要な依存関係です。
-
staging
-
production
環境で宣言されている依存関係に対して
require-dev
セクションで宣言された依存関係は、通常
-
developing
-
testing
の環境です。
例えば、実際にアプリケーションを実行するために使用するパッケージの他に、ソフトウェアを開発するために以下のようなパッケージが必要かもしれません。
-
friendsofphp/php-cs-fixer
(コーディングスタイルの問題を検出し修正するため) -
squizlabs/php_codesniffer
(コーディングスタイルの問題を検出し修正するため) -
phpunit/phpunit
(テストを用いて開発を推進する) - など
デプロイメント
では
development
と
testing
環境では、通常
$ composer install
の両方をインストールするために
production
と
development
の依存関係があります。
しかし
staging
と
production
環境では、アプリケーションの実行に必要な依存関係のみをインストールしたいので、デプロイプロセスの一部として、通常、次のように実行します。
$ composer install --no-dev
をインストールするだけで
production
のような依存関係があります。
セマンティクス
言い換えれば、各セクション
-
require
-
require-dev
に示す。
composer
を実行したときにどのパッケージがインストールされるかを示します。
$ composer install
または
$ composer install --no-dev
以上です。
ノート あなたのアプリケーションやパッケージが依存するパッケージの開発依存は決してインストールされません。
参考までに
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン