使わなくなったパッケージを、安全に、完全に削除する方法を説明します!
🤔 なぜパッケージを削除するの?
削除する理由:
✅ もう使わない – 別の方法に変更した
✅ ファイルサイズ削減 – アプリを軽くしたい
✅ 依存関係の整理 – シンプルに保つ
✅ セキュリティ – 使わないパッケージは脆弱性のリスク
✅ ビルド時間短縮 – 不要なものを減らす
比喩で言うと: 使わない服を整理するようなもの。クローゼット(アプリ)がスッキリします!
🗑️ 削除の基本手順(3ステップ)
ステップ1️⃣: pubspec.yaml から削除
ステップ2️⃣: import 文を削除
ステップ3️⃣: flutter pub get を実行
これだけです! 😊
実際にやってみましょう!
例: dio パッケージを削除する場合
1-1. 削除前の状態
dependencies:
flutter:
sdk: flutter
provider: ^6.1.0
http: ^1.1.0
dio: ^5.4.0 # ← これを削除する
intl: ^0.19.0
1-2. 行ごと削除
dependencies:
flutter:
sdk: flutter
provider: ^6.1.0
http: ^1.1.0
# dio: ^5.4.0 # ← コメントアウトでもOK(後で戻せる)
intl: ^0.19.0
または、完全に削除:
dependencies:
flutter:
sdk: flutter
provider: ^6.1.0
http: ^1.1.0
intl: ^0.19.0
プロジェクト内で dio を使っている場所を探して削除します。
2-1. 検索する
VS Code / Android Studio:
- Ctrl+Shift+F (Windows) / Cmd+Shift+F (Mac)
- import ‘package:dio/dio.dart’ で検索
2-2. import と使用箇所を削除
// ❌ 削除前
import 'package:dio/dio.dart'; // ← この行を削除
Future<void> fetchData() async {
final dio = Dio(); // ← dio を使っているコードも削除
final response = await dio.get('https://example.com');
}
// ✅ 削除後(httpパッケージに変更した場合)
import 'package:http/http.dart' as http;
Future<void> fetchData() async {
final response = await http.get(Uri.parse('https://example.com'));
}
パッケージを実際にプロジェクトから削除します。
flutter pub get
実行すると:
Running "flutter pub get" in my_app...
Resolving dependencies...
- dio 5.4.0
Changed 1 dependency!
「- dio 5.4.0」 (マイナス記号!)と出たら削除成功! ✅
🧹 完全に削除する方法(キャッシュもクリア)
基本の3ステップでも削除できますが、キャッシュまで完全削除したい場合:
flutter clean
flutter pub get
どうなる?
- ビルドキャッシュを削除
- パッケージを再ダウンロード
- プロジェクトがクリーンな状態に
flutter pub cache clean
flutter pub get
何が起こる?
- 全パッケージのキャッシュを削除
- すべてのパッケージを再ダウンロード
- 時間がかかる! (よほどのことがなければ不要)
⚠️ **削除前の注意点チェックリスト
削除する前に確認:
✅ 本当に使ってない? – プロジェクト全体を検索
✅ 依存パッケージは? – 他のパッケージが使ってないか
✅ Gitでコミット – いつでも戻せるように
✅ テストする – 削除後にアプリが動くか確認
🔍 本当に使われていないか確認する方法
方法1: エディタの検索機能
Ctrl+Shift+F (Windows) / Cmd+Shift+F (Mac)
検索ワード: package:dio
**0件なら安全に削除できる!**
方法2: エラーで確認(荒技!)
1. `pubspec.yaml` からパッケージを削除
2. `flutter pub get` を実行
3. `flutter run` でアプリを起動
エラーが出る? → まだ使っている!
エラーが出ない? → 安全に削除できた!
よくあるエラーと解決策
エラー1: 他のパッケージが依存している
Because package_a depends on dio ^5.0.0 which depends on http_parser ^4.0.0,
package_a requires http_parser ^4.0.0.
原因:削除しようとしたパッケージが、他のパッケージから使われている
解決策:
– そのパッケージは削除できない(依存されている)
– または、依存している側のパッケージも削除する
エラー2: import のエラー
Error: Not found: 'package:dio/dio.dart'
原因: パッケージを削除したのに、コードで import している
解決策:
1. エラーメッセージのファイルを開く
2. `import ‘package:dio/dio.dart’` を削除
3. dio を使っているコードも削除または書き換え
エラー3: メソッドが見つからない
Error: The method 'get' isn't defined for the type 'Dio'.
原因: パッケージ削除後、そのパッケージのメソッドを使っている
解決策:
コード内の dio 関連のメソッドをすべて削除
別のパッケージで書き直す
💡 複数パッケージを一度に削除
# 削除前
dependencies:
flutter:
sdk: flutter
provider: ^6.1.0
http: ^1.1.0
dio: ^5.4.0 # ← 削除
shimmer: ^3.0.0 # ← 削除
lottie: ^3.0.0 # ← 削除
intl: ^0.19.0
# 削除後
dependencies:
flutter:
sdk: flutter
provider: ^6.1.0
http: ^1.1.0
intl: ^0.19.0
その後:
flutter pub get
一度に複数削除してもOK! 😊
実践例: dioからhttpに乗り換える
ステップ1: httpを追加(まだdioは削除しない)
dependencies:
dio: ^5.4.0 # まだ残しておく
http: ^1.1.0 # 先に追加
httpを追加(まだdioは削除しない)
flutter pub get
ステップ2: コードを書き換える
// 古いコード(dio)
import 'package:dio/dio.dart';
Future<void> fetchData() async {
final dio = Dio();
final response = await dio.get('https://example.com/data');
print(response.data);
}
// 新しいコード(http)
import 'package:http/http.dart' as http;
import 'dart:convert';
Future<void> fetchData() async {
final response = await http.get(Uri.parse('https://example.com/data'));
final data = json.decode(response.body);
print(data);
}
ステップ3: テストする
flutter run
ステップ4: dioを削除
dependencies:
# dio: ^5.4.0 # ← 削除
http: ^1.1.0
flutter pub get
ステップ5: import文を削除
// import 'package:dio/dio.dart'; ← 削除
import 'package:http/http.dart' as http;
ステップ6: 最終確認
flutter run
📋 削除のチェックリスト
削除作業の流れ:
✅ Gitコミット – 作業前に保存
✅ 検索 – パッケージが使われていないか確認
✅ pubspec.yaml から削除 – 行ごと削除
✅ import 文削除 – プロジェクト全体から
✅ flutter pub get – 実際に削除
✅ テスト – アプリを起動して確認
✅ Gitコミット – 問題なければコミット更」のこと。
💡 コツを調べてみた
❶ コメントアウトで様子見
すぐに削除せず、まずコメントアウト:
dependencies:
# dio: ^5.4.0 # 2026/01/10 削除予定 - httpに移行中
http: ^1.1.0
1週間くらい様子見して、問題なければ完全削除!
❷ 削除リストを作る
# 削除予定パッケージ
# - dio (httpに移行済み)
# - shimmer (使ってない)
# - lottie (アニメーション廃止)
dependencies:
http: ^1.1.0
provider: ^6.1.0
計画的に削除!
❸ 定期的に棚卸し
3ヶ月に1回くらい、pubspec.yaml を見直す
- 使ってないパッケージないか?
- 似たような機能のパッケージを重複して入れてないか?
削除するか迷ったら?
| 完全に使ってない | ✅ 削除! |
|---|---|
| 将来使うかも… | ⚠️ 必要になったら入れ直せばOK |
| 他のパッケージが依存 | ❌ 削除できない |
| テスト用だけで使用 | △ dev_dependencies に移動 |
削除とアンインストールの違い
削除 = pubspec.yaml から消すだけ でOK
特別な「アンインストールコマンド」はない
flutter pub get で自動的に不要なパッケージは無視される
一言まとめ:
パッケージ削除は pubspec.yaml から削除 → import削除 → flutter pub get の3ステップ! 削除前に検索して、本当に使われていないか確認するのがコツ! 🗑️
