2013-04-30 2 views
13

Sto cercando di creare un repository localeper testare un progetto di compositore, maCompositore create-progetto fallisce sul repository di pacchetti locale

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

fallisce con

[UnexpectedValueException] 

Unknown package has no name defined [...] 

mio 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" 
     } 
     } 
    } 
    } 
} 

Per quanto riguarda composer's guide, questo dovrebbe essere sufficiente.

Qualsiasi indizio?

risposta

17

Esegui questo e dimmi se funziona anche per voi:

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

Incolla e salvare:

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

Esegui:

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" 

e quindi creare il pacchetto:

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

Mi dispiace che ci sia voluto così tanto tempo, che ha funzionato magnificamente! Dove hai ottenuto la sintassi alternativa per un singolo pacchetto? E, a proposito, anche se non si esegue il check-in 'packages.json', funziona ancora e non include la definizione del repository nel progetto generato (a cui non appartiene). – Utaal

+0

Tuttavia, questo funziona solo per un singolo pacchetto e non riesco ancora a farlo funzionare con il formato descritto nella guida. – Utaal

+0

Era letteralmente per tentativi ed errori. Dopo aver scavato molto la sintassi, sono tornato al tuo errore, cercando di capire di quale "nome del pacchetto" stia parlando e ho iniziato a cancellare le cose da esso per avere uno più piccolo, con un solo pacchetto. E, credimi, "pacchetto" (singolare) era un refuso, che mi ha fatto ridere. Penso che una parola con le persone di Composer possa dare un po 'di luce al problema dei pacchetti, c'è sicuramente qualcosa di sbagliato lì dentro. –