Как установить jQuery с помощью Composer?
-
11-12-2019 - |
Вопрос
Мне удалось установить репозитории, в которых нет файла композитора.json, например:
{
"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"
}
}
},
Я взял «тип»:«zip» часть из документации, но я не смог найти многих других типов.Например, мне нужно установить jQuery, но я не знаю, что именно поставить ("js" не сработало).
{
"type": "package",
"package": {
"name": "jquery/jquery",
"version": "1.7.2",
"dist": {
"url": "http://code.jquery.com/jquery-1.7.2.js",
"type": "js"
}
}
}
Есть идеи?
РЕДАКТИРОВАТЬ:добавляю полностью решение чтобы помочь @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"
}
}
}
]
Решение
Это просто отсутствующая функция.Вероятно, должен быть новый тип DIST, который является просто одним файлом открытого текста, который будет загружен и оставлен как есть.ПОЖАЛУЙСТА, ПОЖАЛУЙСТА, ОСОБЕННОСТЬ ОКТИРОВАНИЯ THE TRUSE TRUSTER: https://github.com/composer/composer/issues/
Редактировать:
Эта функция На самом деле существует но не было документировано.
."type": "file"
Другие советы
На самом деле есть более простой способ установить jQuery, просто введите:
{
"require": {
"components/jquery": "1.9.*"
}
}
.
Это использует Установщик компонента для компонента и по умолчанию все активы из компонента установлены под components
, но он может быть настроенОтказ( См. Docs ).
Как уже отмечалось, первая часть решения — это определение собственных репозиториев и "type: ": "file"
опция определения репозитория.Но следующая проблема заключается в том, чтобы заставить композитора разместить JQuery там, где вы хотите.В нынешнем виде композитор, похоже, ограничен загрузкой источника зависимостей под vendor-dir
(что раздражает, но, вероятно, связано с требованиями автозагрузки).Общее решение этого ограничения — написать плагин композитора, который его обходит.Кажется, есть несколько плагинов, которые могут с этим справиться.Самое простое и легкое решение, которое я нашел, это Менеджер ресурсов PHP Composer, который предназначен для управления «активами», не относящимися к PHP/Composer.Тем не менее, у него есть по крайней мере одно ограничение: изменения, вносимые плагином, не управляются/не обнаруживаются композитором.Все еще можно использовать.
Вот полный composer.json
чтобы установить JQuery с помощью этого плагина:
{
"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": "*"
}
}
}
}
Вы можете установить jQuery, используя NPM вроде,
npm install jquery
.
Используйте npm
, yarn
или WebPack
вместо композитора, они намного лучше для таких потребностей.