Handle no pubspec.lock in `dependency-services list`
diff --git a/lib/src/command/dependency_services.dart b/lib/src/command/dependency_services.dart
index c2b6333..33a5263 100644
--- a/lib/src/command/dependency_services.dart
+++ b/lib/src/command/dependency_services.dart
@@ -224,12 +224,17 @@
final pubspec = entrypoint.root.pubspec;
// This list will be empty if there is no lock file.
- final currentPackages = entrypoint.lockFile.packages.values;
+ final currentPackages = fileExists(entrypoint.lockFilePath)
+ ? Map<String, PackageId>.from(entrypoint.lockFile.packages)
+ : Map<String, PackageId>.fromIterable(
+ await _tryResolve(entrypoint.root.pubspec, cache),
+ key: (e) => e.name);
+ currentPackages.remove(entrypoint.root.name);
final dependencies = <Object>[];
final result = <String, Object>{'dependencies': dependencies};
- for (final package in currentPackages) {
+ for (final package in currentPackages.values) {
dependencies.add({
'name': package.name,
'version': package.version.toString(),