Pregunta

He sido capaz de instalar los repositorios que no tienen un compositor.archivo json como este:

    {
        "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"
            }
        }
    },

Tomé el "tipo":"zip" parte de los médicos, pero no pude encontrar muchos otros tipos.Por ejemplo, tengo que instalar jQuery, pero no sé qué poner en el tipo ("js" no funciona).

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

Alguna idea?

EDITAR:Estoy añadiendo la plena solución para ayudar a @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"
                }
            }
        }
    ]
¿Fue útil?

Solución

Esta es simplemente una característica que falta.Probablemente debería haber un nuevo tipo de dist, que es solo un solo archivo de texto simple que se descargue y se deja a la izquierda.Presente una solicitud de función en el Rastreador de emisión de GitHub: https://github.com/composer/compositor/issues/

Editar:

La característica realmente existe pero no fue documentado.

"type": "file"

Otros consejos

En realidad, hay una forma más fácil de instalar jquery, solo tipo:

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

usa Instalador de componentes para compositor y por defecto Todos los activos del componente se instalan en components, pero se puede personalizar.( ver docs ).

Como se indica ya, parte de la solución es definir sus propios repositorios y la "type: ": "file" repositorio de la opción de definición.Pero el siguiente problema es llegar compositor para poner el JQuery donde quieras.Tal y como está, compositor parece que se limita a la descarga de la dependencia de origen en virtud de vendor-dir (que es molesto, pero probablemente en relación con la carga automática de los requisitos).El general de corrección para esta limitación es para escribir un compositor plugin que lo supera.Parece ser un par de plugins que pueden manejar esto.El más simple, más ligero solución que he encontrado es PHP Composer Asset Manager, que se dedica a la gestión de no PHP/Compositor de "activos".Sin embargo, al menos una limitación en el que los cambios que el plugin hace que no son administrados/detectado por el compositor.Todavía utilizables.

He aquí un completo composer.json para instalar JQuery usando ese 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": "*"
      }
    }
  }
}

Puede instalar jQuery usando NPM así,

npm install jquery

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

Utilice npm, yarn o WebPack en lugar de compositor, son mucho mejores para ese tipo de necesidades.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top