我看到已经存在一个问题,但它没有回答问题
如何在/src
目录中安装捆绑包?
我想这样做的原因是开发和部署,所以
查看作曲家文档,我确实遇到过这个问题:
vendor-dir :默认为供应商。您可以将依赖项安装到 如果你愿意,可以使用不同的目录。
我可以将它设置为捆绑级别吗?或者这是整体安装吗?
答案 0 :(得分:21)
我知道这已经晚了,但如果有人正在寻找我辛苦(小时和小时)的答案:vendor-dir
文档说:
通过设置此var,您可以使作曲家将依赖项安装到供应商
以外的目录中
示例:
{
"config": {
"vendor-dir": "website/password/vendor/"
}
}
再次希望能在几个小时内拯救其他人。
答案 1 :(得分:9)
{
"extra": {
"installer-paths": {
"sites/example.com/modules/{$name}": ["vendor/package"]
}
}
}
答案 2 :(得分:2)
我已经实现了这个作曲家插件,可以将软件包安装到用户(自定义)定义的文件夹中,您可以将它包含在您的composer.json中,按照示例告诉我您是否还有其他问题:)
https://github.com/mnsami/composer-custom-directory-installer
作曲家插件,用于在vendor
文件夹中默认编写器默认安装路径之外的自定义目录中安装不同类型的编写器包。
这不是用于支持非作曲家包类型的另一个composer-installer
库,即application
..等。这只是为了增加在vendor文件夹之外安装composer包的灵活性。此程序包仅支持composer
程序包类型,
https://getcomposer.org/doc/04-schema.md#type
包裹的类型。它默认为库。
包类型用于自定义安装逻辑。如果您的软件包需要一些特殊逻辑,则可以定义自定义类型。这可能是symfony-bundle,wordpress-plugin或typo3-module。这些类型都将特定于某些项目,并且需要提供能够安装该类型包的安装程序。
composer.json
require
部分:: "require":{
"php": ">=5.3",
"mnsami/composer-custom-directory-installer": "1.1.*",
"monolog/monolog": "*"
}
extra
部分中,定义要在:: "extra":{
"installer-paths":{
"./monolog/": ["monolog/monolog"]
}
通过添加installer-paths
部分,您告诉作曲家在您的根目录中的monolog
文件夹中安装monolog
包。
composer/installers
一样,换句话说,您可以在{$vendor}
和{$name}
中使用installer-path
和"extra": {
"installer-paths": {
"./customlibs/{$vendor}/db/{$name}": ["doctrine/orm"]
}
}
等变量{1}}部分:doctrine/orm
以上将设法在customlibs
下的项目的根文件夹中安装type: project
包。
此安装程序不支持Composer project
,因为类型symfony/framework-standard-edition
的包仅适用于{{1}}之类的应用程序shell,这是另一个程序包所必需的。
答案 3 :(得分:1)
如果您发现作曲家的自定义安装程序过于复杂或严格,并且您可以规划要部署的系统类型,则可以考虑使用安装后脚本。
这是一个示例,它从供应商下安装的软件包创建符号链接到可能出现的位置:
"scripts": {
"post-install-cmd": [
"test -d vendor/foo/bar && ln -s ../vendor/foo/bar lib/bar"
]
}
这将在lib/bar/
处创建指向vendor/foo/bar/
的符号链接。