🐡

Flutterで使うdev_dependenciesについて

2023/07/28に公開

はじめに

Flutterのpubspec.yamlに記載されているdev_dependenciesについて、dependenciesとの違いがよく分からなかったので調べました。

インストール方法

dev_dependenciesに記載されるパッケージは、dオプションをつけるとインストールされます。

flutter pub add -d パッケージ名
dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^2.0.0
  パッケージ名: ^X.X.X

調査内容

https://dart.dev/tools/pub/dependencies
自分が確認した上記ページでは、Dev dependenciesという項目でPubがサポートする2種類の依存関係を説明していました。

原文
Pub supports two flavors of dependencies: regular dependencies and dev dependencies. Dev dependencies differ from regular dependencies in that dev dependencies of packages you depend on are ignored.

意訳
Pubは、通常の依存関係と開発用の依存関係、2種類をサポートしています。開発用の依存関係では、あなたが依存する開発用の依存関係は無視される点が通常の依存関係と異なります。

先まで読み進めると、dev_dependenciesとdependenciesを使い分ける際のルールが記載されています。

原文
The rule for deciding between a regular or dev dependency is simple: If the dependency is imported from something in your lib or bin directories, it needs to be a regular dependency. If it’s only imported from test, example, etc. it can and should be a dev dependency.

意訳
通常の依存関係と開発用の依存関係、どちらを選択するかのルールはシンプルです: もし依存関係があなたのlibやbinディレクトリからインポートされる場合、それは通常の依存関係である必要があります。もし"test"、"example"などからのみインポートされる場合は、開発用の依存関係として指定でき、そうすべきです。

あくまで自身のプロジェクトのみで利用するパッケージはdev_dependenciesでインストールし、開発メンバー全体でも利用するものはdependenciesで利用するものだと理解しました。

参考

https://dart.dev/tools/pub/dependencies

下記ページのDependenciesの項目にも説明がありました。
https://dart.dev/tools/pub/pubspec#dependencies

Discussion