我开发了一个定制的laravel包并把它放在GitHub上。我把它放在composer.json(下面的代码)中,安装得很好。
我还没有版本信息,因为它仍处于开发阶段。当我对我的包进行更改(在单独的目录中)时,我提交并将更改推送到GitHub存储库。
当我运行“作曲家更新”时,我得到“无需安装或更新”#34;。如果我从供应商目录中删除包并更新,那么我的包是从GitHub仓库安装的,包含最新的更改。
但是我希望能够从repo中提取/强制进行最新的更改,而不是先从我的vendor目录中删除它,因为我对该包有其他依赖,如果我删除它,我会从工匠那里得到错误编译了未定义的类(因为它们是在我删除的供应商包中定义的......)
我的顶级composer.json的相关部分是:
"repositories": [{
"type": "package",
"package": {
"name": "myrepo/MyExtension",
"version": "dev-master",
"source": {
"url": "https://github.com/myrepo/MyExtension.git",
"type": "git",
"reference": "master"
},
"autoload": {
"psr-4": {
"MyExtension\\": "src/Extensions/"
}
}
}
],
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*",
"myrepo/MyExtension": "dev-master"
},
答案 0 :(得分:3)
要更新您的更改,您需要对软件包进行版本控制,但正如您之前所说,您没有对软件包进行版本控制,因此要更新您的更改,您可以转到composer.lock删除软件包条目或使用composer删除包并重新安装。例如
// composer remove vendor/package && composer require vendor/package
composer remove zizaco/entrust && composer require zizaco/entrust
答案 1 :(得分:2)
您自己创建了有关您的软件包的所有元数据,这可能使Composer认为数据没有改变。
更简单,可能更有效的方法是简单地指向存储库URL,让Composer从存储库中包含的composer.json
文件中查询元数据:
"repositories": [{
"type": "vcs",
"url": "https://github.com/myrepo/MyExtension.git"
]}