dev*_*oxr 26 php json repository package composer-php
我有一个像这样的目录结构:
composer.json < Main
packages/
balunker/
testpackage/
composer.json < Package
src/
TestPackage.php
Run Code Online (Sandbox Code Playgroud)
主要composer.json看起来像这样:
{
"name": "vagrant/composer-test",
"repositories": [
{
"type": "path",
"url": "packages/*/*"
}
],
"require": {
"balunker/testpackage": "*"
}
}
Run Code Online (Sandbox Code Playgroud)
虽然包composer.json看起来像这样:
{
"name": "balunker/testpackage",
"autoload": {
"psr-4": {
"Balunker\\": "src/"
}
}
}
Run Code Online (Sandbox Code Playgroud)
在composer update我简单的拿到包不能被解析的消息.没有创建符号链接,也没有安装任何包.我确实花了一半的时间来搞清楚这一点,没有任何成功.
我还上传了一个composer update -vvv详细的输出:http://pastebin.com/mMRHsACk.
我的作曲家版本是最新的(截至2016年4月20日下午2:39 UTC),所有这些都在Vagrant(Debian)中运行.
非常感谢来自此的任何建议.我真的不知道还能做什么.
dev*_*oxr 52
我也在Github上发布了这个问题,结果证明文档有点误导.它说:
{
"repositories": [
{
"type": "path",
"url": "../../packages/my-package"
}
],
"require": {
"my/package": "*"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您只有一个没有发行版的本地仓库,则必须使用:
{
"repositories": [
{
"type": "path",
"url": "../../packages/my-package"
}
],
"require": {
"my/package": "dev-master"
}
}
Run Code Online (Sandbox Code Playgroud)
版本dev-master是这里的关键(假设您正在处理主分支).这有点令人愤怒,但多亏了一些有用的作曲家贡献者,我终于可以抓住这个了.
我希望这对未来的某些人有所帮助.
祝好运!
帮助我解决的是composer clear-cache然后运行composer update。
说明:我最初尝试composer install my/package在依赖版本上失败。所以我需要进行一些本地修改以使其适用于 Laravel 6.0。但是,它继续检查 Laravel 包的错误版本,这让我相信它没有看到我在repositories密钥中设置的本地存储库"type": "path"。我首先确保路径存在并且我在正确的分支上(master这就是我dev-master在我的composer.json. 一旦我清除了 Composer 缓存并运行更新,它就会使用我的本地路径进行更新,没有任何依赖问题。
"repositories": [
{
"type": "path",
"url": "../libs/package-name"
}
],
"require-dev": {
"pkg-maintainer/package-name": "dev-master"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12404 次 |
| 最近记录: |