瀏覽代碼

Do not throw exception on install --dev with old lock files if composer.json has no require-dev

Jordi Boggiano 12 年之前
父節點
當前提交
b519d65bff
共有 1 個文件被更改,包括 10 次插入1 次删除
  1. 10 1
      src/Composer/Installer.php

+ 10 - 1
src/Composer/Installer.php

@@ -295,7 +295,16 @@ class Installer
         $installFromLock = false;
         if (!$this->update && $this->locker->isLocked()) {
             $installFromLock = true;
-            $lockedRepository = $this->locker->getLockedRepository($withDevReqs);
+            try {
+                $lockedRepository = $this->locker->getLockedRepository($withDevReqs);
+            } catch (\RuntimeException $e) {
+                // if there are dev requires, then we really can not install
+                if ($this->package->getDevRequires()) {
+                    throw $e;
+                }
+                // no require-dev in composer.json and the lock file was created with no dev info, so skip them
+                $lockedRepository = $this->locker->getLockedRepository();
+            }
         }
 
         $this->whitelistUpdateDependencies(