如何指定Composer安装path?
我有这个定义:
{ "repositories": [ { "type": "package", "package": { "name": "symfony/sfGuardPlugin", "version": "4.0.2", "dist": { "url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz", "type": "tar" } } } ], "require": { "symfony/sfGuardPlugin": "4.0.*" } }
我正在使用Symfony 1,我想将它们安装在plugins/sfGuardPlugin/
。 我如何指定这个?
看来你可以定义vendor
目录是别的东西 ( plugins
在你的情况):
{ "config": { "vendor-dir": "plugins" } }
然后,你可以重新命名包名称,使其没有级别目录,例如:
"package": { "name": "sfGuardPlugin",
所以,你的composer.json
应该是这样的:
{ "config": { "vendor-dir": "plugins" }, "repositories": [ { "type": "package", "package": { "name": "sfGuardPlugin", "version": "4.0.2", "dist": { "url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz", "type": "tar" } } } ], "require": { "sfGuardPlugin": "4.0.*" } }
编辑
使用这个configuration,你将得到的path(这当然不是symfony的好):
插件/ sfGuardPlugin / sfGuardPlugin-4.0.2 /
我发现这个composer.json
解决方法:
{ "config": { "vendor-dir": "plugins" }, "repositories": [ { "type": "package", "package": { "name": "sfGuardPlugin", "version": "4.0.2", "source": { "url": "http://svn.symfony-project.com/plugins/sfGuardPlugin/", "type": "svn", "reference": "branches/1.3/" } } } ], "require": { "sfGuardPlugin": "4.0.*" } }
您还可以使用composer / installers ,一个多框架composer php库安装程序与“symfony1-plugin”包types。 这是我的composer.json文件的样子,为了安装Symfony 1.4(在lib / vendor)和插件(/ plugins):
{ "config": { "vendor-dir": "lib/vendor" }, "repositories": { "symfony": { "type": "package", "package": { "name": "symfony/symfony1", "version": "1.4", "dist": { "url": "https://github.com/symfony/symfony1/zipball/1.4", "type": "zip" } } }, "sfResquePlugin" : { "type": "package", "package": { "name": "devpips/sfResquePlugin", "type": "symfony1-plugin", "version": "0.1", "dist": { "url": "https://github.com/devpips/sfResquePlugin/zipball/master", "type": "zip" } } } }, "require": { "composer/installers": "dev-master", "symfony/symfony1": "1.4", "devpips/sfResquePlugin":"0.1" } }
请参阅COMPOSER_VENDOR_DIR
环境variables。
通过设置这个var,你可以让Composer把依赖关系安装到供应商以外的目录中。
如果您想在特定的环境(例如stream浪者)中覆盖此选项,可能会有所帮助,而您不希望此选项位于共享文件夹中。
正如J0k所说, composer.json
config
部分有vendor-dir
默认为供应商。 如果需要,可以将依赖项安装到不同的目录中。 $ HOME和〜将被replace为您的主目录在vendor-dir中的path以及下面的所有* -dir选项。