2016-12-22 1 views
2

J'essaye d'installer un dépôt de git dans un chemin personnalisé en utilisant le compositeur parce que j'utilise Bedrock pour WordPress.Installez le paquet git sur un chemin différent avec le composeur

Dans mon composer.json je ce bloc de code:

// ... 
repositories: [{ 
    "type": "package", 
    "package": { 
     "name": "juniorgarcia/acf-gme", 
     "version": "1.0.2", 
     "source": { 
      "url": "https://github.com/juniorgarcia/acf-gme", 
      "type": "git", 
      "reference": "master" 
     } 
    } 
}] 
// ... 
"extra": { 
    "installer-paths": { 
     "web/app/plugins/{$name}/": ["type:wordpress-plugin"] 
    } 
} 

Le composer.json de mon dépôt a le contenu suivant:

{ 
    "name": "juniorgarcia/acf-gme", 
    "type": "wordpress-plugin", 
    "description": "A extended version of ACF Google Maps plugin with some more functionality.", 
    "require": { 
     "composer/installers": "~1.0" 
    }, 
    "extra": { 
     "installer-name": "advanced-custom-fields-google-map-extended" 
    } 
} 

J'ai suivi les instructions du compositeur sur l'installation d'un chemin personnalisé mais n'a pas fonctionné. Il installe sur vendor. Qu'est-ce que je fais mal?

Répondre

0

Après avoir analysé composer.lock j'ai réalisé que mes dépôts personnalisés y sont insérés comme ceci:

// ... 
{ 
    "name": "juniorgarcia/acf-gme", 
    "version": "1.0.2", 
    "source": { 
     "type": "git", 
     "url": "https://github.com/juniorgarcia/acf-gme", 
     "reference": "master" 
    }, 
    "type": "library" // Notice here! Type is set to "library" 
} // ... 

Type est réglé sur library, donc j'ajouté "type": "wordpress-plugin" sur mon composer.json, comme ça:

{ // ... 
    "type": "package", 
    "package": { 
    "name": "juniorgarcia/acf-gme", 
    "version": "1.0.2", 
    "type": "wordpress-plugin", // Here is where I changed. 
    "source": { 
     "url": "https://github.com/juniorgarcia/acf-gme", 
     "type": "git", 
     "reference": "master" 
    } 
    } 
} // ... 

Cela a fonctionné. J'ai aussi changé l'installer-name ajoutant ces informations comme:

// ... on my composer.json 
"extra": { 
    "installer-name": "advanced-custom-fields-google-maps-extended" // This also worked 
} 

Même avec ce travail, je me demande pourquoi le compositeur ne lit pas les fichiers composer.json de mes paquets qui ont déjà des informations comme type et type. J'apprécie que quelqu'un puisse m'expliquer.