Php 如何使用Composer安装jQuery?
我已经能够安装没有composer.json文件的存储库,如下所示:Php 如何使用Composer安装jQuery?,php,symfony,composer-php,Php,Symfony,Composer Php,我已经能够安装没有composer.json文件的存储库,如下所示: { "type": "package", "package": { "name": "yahoo/yui-compressor", "version": "2.0.4", "dist": { "url": "http://yui.zenfs.com/releases/yuicompre
{
"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"
}
}
},
我从文档中获取了“type”:“zip”部分,但我找不到其他许多类型。例如,我需要安装jQuery,但我不知道输入什么(“js”不起作用)
有什么想法吗
编辑:我正在添加完整的解决方案以帮助@cmcdragokai:
"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,它只是一个要下载并保持原样的纯文本文件。请在github问题跟踪器上提交功能请求: 编辑: 这项功能,但没有记录在案
"type": "file"
实际上,安装jQuery有一种更简单的方法,只需键入:
{
"require": {
"components/jquery": "1.9.*"
}
}
它使用组件,并且默认情况下,组件中的所有资产都安装在
组件
下,但它可以自定义。()。如前所述,解决方案的第一部分是定义您自己的存储库和类型::“文件”
存储库定义选项。但是接下来的问题是让composer将JQuery放在您想要的地方。目前,composer似乎仅限于下载供应商目录下的依赖源代码(这很烦人,但可能与自动加载要求有关)。解决这一限制的一般方法是编写一个composer插件来克服它。似乎有几个插件可以管理这个。我发现的最简单、最轻量级的解决方案是,它专门用于管理非PHP/Composer“资产”。不过,它至少有一个限制,即插件所做的更改不是由composer管理/检测的。仍然可用
下面是使用该插件安装JQuery的完整composer.json
:
{
"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": "*"
}
}
}
}
使用
npm
、warn
或WebPack
而不是Composer,它们更适合这种需要。您可以像这样使用npm安装jquery
npm install jquery
目前我正在使用,但我也希望通过Composer或git子模块获得jQuery。我不喜欢将第三方库放入我的repo中的想法。顺便说一句,由于所有这些事情的发生,被高估了。2013年已经快结束了,仍然没有jquery/jquery包。这真奇怪,乔科!你好现在供应商目录中有了jQuery js文件,现在呢?您必须手动将src添加到此文件,还是作曲家必须自己加载它?我正在尝试自动加载jQuery并将其导入我的站点。是可能的还是我不明白Composer用于什么?@SharikovVladislav Composer用于管理依赖项(即,查找正确的版本、检查是否存在冲突、下载所有内容等)。如何使用这些依赖关系是一个单独的问题。如果它们是PHP依赖项,通常会自动加载,您所要做的就是直接创建对象或调用函数。如果它们是JS文件或其他资产,则必须在要编译/缩小的资产列表中添加文件路径,或者如果不使用缩小,则只需在webroot中创建指向该文件的符号链接并手动添加src。“…或者如果不使用缩小,则只需创建符号链接…”。这意味着您必须在web根目录下设置供应商目录。这不是很不安全吗?谢谢,我刚刚提交了这个问题:斯托夫对这个问题发表了评论,这个功能是存在的。我编辑了你的答案,我试试看。我想我缺少的是将文件放在web目录中的方法。仅为资产创建捆绑包是一种过分的做法。应该可以将js文件直接安装到web目录。这是如何工作的?我只是想让Composer通过HTTP下载一个文本文件?我在哪里指定所有内容?@cmcdragokai我编辑了我的帖子,添加了完整的解决方案这与javascript组件包管理没有任何关系,是吗?
components/jquery
is,相同的repo适用于Bower,Component和composer完成composer需要组件/jquery
而不需要版本,工作起来很有魅力。它在.json
中添加了一行“components/jquery”:“^2.1”
,然后继续安装并将其粘贴到.lock
中-感谢components/*
提示!注意:值得注意的是,Asset Manager插件处理的包名称都是小写的。如果您在“require”中使用大写字母包,那么即使您在其“packages”部分使用相同的方式编写它们,插件也永远不会匹配它们。我现在正在用这些。KISS.Bower已被弃用,不再维护-在2018年不是一个好选择。@rob006使用什么替代?网页包?在鲍尔的网站上有一些建议-可能是纱线和网页包。
npm install jquery