2013-04-30 80 views
13

我試圖創建一個本地庫來測試一個作曲家的項目,但作曲家創建項目在當地包庫失敗

composer create-project --repository-url=/path/to/packages.json vendor/project-name 

失敗

[UnexpectedValueException] 

Unknown package has no name defined [...] 

packages.json是:

{ 
    "packages": { 
    "vendor/project-name": { 
     "dev-master": { 
     "name": "vendor/project-name", 
     "type": "project", 
     "version": "dev-master", 
     "source": { 
      "url": "/path/to/project/.git", 
      "type": "git" 
     } 
     } 
    } 
    } 
} 

至於composer's guide,這應該夠了。

任何線索?

回答

17

執行這一點,並告訴我,如果你的作品太:

mkdir /tmp/project-name 
cd /tmp/project-name 
git init 
vim (or whatever you like) packages.json 

粘貼並保存:

{ 
    "package": { 
     "name": "vendor/project-name", 
     "version": "1.0.0", 
     "source": { 
      "url": "/tmp/project-name/.git", 
      "type": "git", 
      "reference": "master" 
     } 
    } 
} 

執行:

echo '{ "name": "test/test", "version": "1.0.0", "dist": { "url": "http://dummy.com/dummy.zip", "type": "zip" } }' > composer.json 

git add packages.json composer.json 
git commit -a -m "first commit" 

然後創建你的包:

composer create-project --repository-url=/tmp/project-name/packages.json vendor/project-name 
+0

對不起花了這麼長時間,這工作很好! 從哪裏獲得單個包的替代語法? 順便說一句,即使你沒有檢查'packages.json',它仍然可以工作,並且它不包含生成項目中的倉庫定義(它不屬於它)。 – Utaal 2013-05-13 15:40:16

+0

但是,這隻適用於單個包,我仍然無法使用指南中描述的格式。 – Utaal 2013-05-13 15:56:10

+0

字面上是通過試驗和錯誤。在深入挖掘sintax之後,我回到了你的json,試圖理解它正在談論的「包名」,我開始從它中刪除一些小東西,只有一個包。而且,相信我,「包裹」(單數)是一個錯字,這讓我很失望。我認爲在Composer上和人們說一句話可以給包裝問題一些亮點,那裏肯定有什麼問題。 – 2013-05-14 00:11:15