Question

J'ai pu installer des référentiels qui n'ont pas de fichier composer.json comme ceci :

    {
        "type": "package",
        "package": {
            "name": "yahoo/yui-compressor",
            "version": "2.0.4",
            "dist": {
                "url": "http://yui.zenfs.com/releases/yuicompressor/yuicompressor-2.4.7.zip",
                "type": "zip"
            }
        }
    },

J'ai pris le "type" :partie "zip" de la documentation, mais je n'ai pas trouvé beaucoup d'autres types.Par exemple, je dois installer jQuery, mais je ne sais pas quoi mettre en type ("js" n'a pas fonctionné).

    {
        "type": "package",
        "package": {
            "name": "jquery/jquery",
            "version": "1.7.2",
            "dist": {
                "url": "http://code.jquery.com/jquery-1.7.2.js",
                "type": "js"
            }
        }
    }

Des idées?

MODIFIER:j'ajoute le complet solution pour aider @CMCDragonkai :

    "require": {
        "vendorname/somefile": "1.2.3",
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "vendorname/somefile",
                "version": "1.2.3",
                "dist": {
                    "url": "http://example.com/somefile.txt",
                    "type": "file"
                }
            }
        }
    ]
Était-ce utile?

La solution

Ceci est simplement une fonctionnalité manquante.Il devrait probablement y avoir un nouveau type de dist qui n'est qu'un seul fichier en clair à télécharger et à gauche tel quel.Veuillez déposer une demande de fonctionnalité sur le tracker GitHub Issue: https://github.com/compose/composer/issues/

EDIT:

La fonctionnalité existe effectivement mais n'a pas été documentée.

"type": "file"

Autres conseils

En réalité, il y a un moyen plus facile d'installer jQuery, de type:

{
    "require": {
        "components/jquery": "1.9.*"
    }
}

Il utilise Installateur de composant pour le compositeur et par défaut, tous les actifs du composant sont installés sous components, mais il peut être personnalisé.( Voir Docs ).

Comme indiqué déjà, la première partie de la solution définit vos propres référentiels et l'option de définition de référentiel "type: ": "file". Mais une question ultérieure consiste à obtenir le compositeur de mettre la jQuery où vous le souhaitez. Comme il se trouve, le compositeur semble limité au téléchargement de la source de dépendance sous vendor-dir (qui est gênant mais probablement lié aux exigences de l'autoloading). La solution générale à cette limitation consiste à écrire un plugin compositeur qui la surmonte. Semble être quelques plugins qui peuvent gérer cela. La solution la plus simple la plus légère que j'ai trouvée est PHP Composer Asset Manager , qui est dédié à la gestion des" actifs "non PHP / compositeur. Cependant, il a au moins une limitation dans ces changements que le plugin est non géré / détecté par le compositeur. Toujours utilisable.

Voici un générateur complet pour installer JQuery en utilisant ce plugin:

{
  "name": "foo/bar",
  "require":
  {
    "phpclasses/assets": "*",
     "jquery/jquery": "*"
  },
  "repositories": [
    {
     "type": "composer",
     "url": "http://www.phpclasses.org/"
    },
    {
      "type": "package",
      "package": {
        "name": "jquery/jquery",
        "version": "1.7.2",
        "type": "jquery",
        "dist": {
          "url": "http://code.jquery.com/jquery-1.7.2.js",
          "type": "file"
        }
      }
    }
  ],
  "extra": {
    "assets": {
      "actions": [
        {
          "type": "copy",
          "target": "webroot/js",
          "pattern": "\\.js$"
        }
      ],
      "packages": {
        "jquery/jquery": "*"
      }
    }
  }
}

Vous pouvez installer jQuery en utilisant NPM comme si,

npm install jquery

https://www.npmjs.com/package/jquery

Utiliser npm, yarn ou WebPack au lieu de Composer, ils sont bien meilleurs pour ce genre de besoins.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top