我使用laravel 5.2编写了一个应用程序。这个程序有模块/包。所有包都将位于名为modules
的文件夹中。
我的第一个包位于名为modules/Mikea/Surveys
的文件夹中。 Mikea
是供应商的名称,Surveys
是模块/包名称。每个软件包都有自己的composer.json
文件,这样我就可以使用它自己的编写器配置来配置每个软件包。 (我目前有一个包,但我以后可以有更多)
在我的main composer.json文件中,我在存储库部分中使用"path"类型,就像您在以下composer.json文件中看到的那样
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*",
"laravelcollective/html": "5.2.x-dev",
"mikea/surveys": "*"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"phpspec/phpspec": "~2.1",
"symfony/dom-crawler": "~3.0",
"symfony/css-selector": " ~3.0"
},
"repositories": [
{
"type": "path",
"url": "modules/Mikea/Surveys"
}
],
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/",
"Modules\\": "modules/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"pre-update-cmd": [
"php artisan clear-compiled"
],
"post-update-cmd": [
"php artisan optimize"
],
"post-root-package-install": [
"php -r \"copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
}
}
在第二个composer.json文件"包文件"我有以下
{
"name": "mikea/surveys",
"type": "library",
"description": "Survey System",
"authors": [
{
"name": "Mike A",
"email": "some@email.com"
}
],
"repositories": [
{
"type": "package",
"package": {
"name": "mikea/surveys",
"version": "0.1.0",
"source": {
"type": "path",
"url": "modules/Mikea/Surveys"
}
}
}
],
"require": {
"php": ">=5.4.0"
},
"autoload": {
"classmap": [
"database/migrations",
"database/seeds"
],
"psr-4": {
"mikea\\Surveys\\": "src/"
}
},
"minimum-stability": "dev",
"prefer-stable": true
}
当我运行composer update
时,我收到以下错误
F:\xampp\htdocs\proj>composer update
> php artisan clear-compiled
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package mikea/surveys could not be found in any version, there may be a typo in the package name.
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.
Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
我在这里做错了什么?为什么我会收到此错误?
答案 0 :(得分:2)
我相信我弄清楚了。
我必须在我的第二个composer.json
文件中添加“版本”标记,就像这样。至少添加“版本”允许我运行命令,没有错误
{
"name": "mikea/surveys",
"type": "library",
"description": "Survey System",
"version": "0.1.0",
"authors": [
{
"name": "Mike A",
"email": "some@email.com"
}
],
"require": {
"php": ">=5.4.0"
},
"autoload": {
"classmap": [
"database/migrations",
"database/seeds"
],
"psr-4": {
"mikea\\Surveys\\": "src/"
}
},
"minimum-stability": "dev",
"prefer-stable": true
}