我在我的Laravel应用程序中使用了一个软件包,它没有开箱即用的Laravel支持,所以我自己添加了一个外观和服务提供程序。这两个文件都签入到我的存储库中(在 .gitignore 中使用 ! 前缀指定)。但是,当 composer 更新包时,它会首先将其完全删除,这会阻止使用 Codeship 等平台进行自动部署。
有什么建议吗?
您应该分叉包,使用您的更改创建自定义存储库 - 然后将其包含在您的composer.json
中。
{
"repositories": [ {
"type": "vcs",
"url": "https://github.com/YourGithubUsername/PackageName"
}
}],
"require": {
"laravel/framework": "4.0.*",
"OriginalVendor/PackageName": "1.0.*"
},
}
这样,您可以随时提取自定义更改,而无需将其提交到特定项目。
您可以在此处阅读有关分叉和加载包的更多信息:https://getcomposer.org/doc/05-repositories.md#vcs
永远不要更改软件包的代码!事实上,永远不要触摸vendor
目录。
你应该[分叉]存储库并添加你的代码(参见@TheShiftExchange的答案)
或者在命名空间中添加外观和服务提供程序。