Handle no pubspec.lock in `dependency-services apply`
diff --git a/lib/src/command/dependency_services.dart b/lib/src/command/dependency_services.dart
index 33a5263..9926731 100644
--- a/lib/src/command/dependency_services.dart
+++ b/lib/src/command/dependency_services.dart
@@ -282,9 +282,11 @@
 
     final pubspec = entrypoint.root.pubspec;
     final pubspecEditor = YamlEditor(readTextFile(entrypoint.pubspecPath));
-    final lockFile = readTextFile(entrypoint.lockFilePath);
-    final lockFileYaml = loadYaml(lockFile);
-    final lockFileEditor = YamlEditor(lockFile);
+    final lockFile = fileExists(entrypoint.lockFilePath)
+        ? readTextFile(entrypoint.lockFilePath)
+        : null;
+    final lockFileYaml = lockFile == null ? null : loadYaml(lockFile);
+    final lockFileEditor = lockFile == null ? null : YamlEditor(lockFile);
     for (final p in toApply) {
       final targetPackage = p.name;
       final targetVersion = p.version;
@@ -299,16 +301,18 @@
               VersionConstraint.compatibleWith(targetVersion).toString());
         }
 
-        if (lockFileYaml['packages'].containsKey(targetPackage)) {
-          lockFileEditor.update(
-              ['packages', targetPackage, 'version'], targetVersion.toString());
+        if (lockFile != null) {
+          if (lockFileYaml['packages'].containsKey(targetPackage)) {
+            lockFileEditor.update(['packages', targetPackage, 'version'],
+                targetVersion.toString());
+          }
         }
       }
     }
     if (pubspecEditor.edits.isNotEmpty) {
       writeTextFile(entrypoint.pubspecPath, pubspecEditor.toString());
     }
-    if (lockFileEditor.edits.isNotEmpty) {
+    if (lockFile != null && lockFileEditor.edits.isNotEmpty) {
       writeTextFile(entrypoint.lockFilePath, lockFileEditor.toString());
     }
     await log.warningsOnlyUnlessTerminal(