在我的 Laravel 5.4composer.json 文件中,我有以下内容可以自动加载我的自定义包。请注意,该包尚未发布,而是在本地加载。
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/",
"Vendor\\Module\\": "packages/vendor/module/src"
}
},
然后在我的包composer.json文件中我有以下内容
{
"name": "vendor/module",
"description": "A custom package",
"version": "1.0.0",
"type": "project",
"authors": [
],
"minimum-stability": "dev",
"require": {
"laravelcollective/html": "^5.4.0"
}
}
然而,当我跑步时作曲家安装从 Laravel 根目录中,它永远不会获取我需要的 laravelcollective/html 包。
有没有办法加载未发布的本地包的依赖项?
我相信我找到了一个解决方案,尽管它可能不是本地包开发的最佳方法,但它对我有用。
在根composer.json文件中,我添加了以下内容并运行作曲家更新来自应用程序的根目录似乎现在选择了该包及其依赖项,并将所有内容安装到根应用程序的主供应商目录中。
"repositories": [
{
"type": "path",
"url": "packages/vendor/module"
}
],
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~5.7",
"vendor/module": "1.0.*"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/",
"Vendor\\Module\\": "packages/vendor/module/src"
}
},
此方法的好处是它仅为自定义包创建符号链接,因此您可以继续在包目录中写入更新,并且如果设置类型,更改将生效,而不必提交到本地 git 存储库到vcs在存储库领域作曲家.json.
我还必须在要求开发现场版本号以便它通过版本约束,否则在运行 Composer 时您会收到警告,提示该包不满足最低版本要求。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)