【发布时间】:2018-09-11 08:05:05
【问题描述】:
我正在尝试使用 composer-file 创建一个项目。
Reason 主要是我不想上传到 git 的依赖项。
我的预期结构是这样的:
项目根文件夹
- 项目子文件夹
- 供应商(具有required 依赖项)
- index.php
- 作曲家.json
- README.md
但是使用composer安装的结构是这样的:
项目根文件夹
- 供应商
- 供应商/作曲家
- 供应商/智能(依赖)
- 供应商/我的项目
- 作曲家.json
我知道许多不同的项目都有特殊的安装程序,但我只是不明白需要安装程序才能获得预期的结构,而且如果没有特殊的安装程序也不知道如何做到这一点。
这是我试过的一个作曲家文件的内容:
{
"name": "wdb/tutorial-oop",
"require": {
"smarty/smarty": "~3.1"
}
}
当我在本地文件中尝试这个 composer-json 内容并执行 composer install 时,我得到了相同的结构:
{
"require": {
"wdb/tutorial-oop": "dev-master"
}
}
所以我的问题是,一个作曲家文件必须如何看待项目结构的创建,就像我在这个问题的顶部所描述的那样。 基本问题是我不希望我的项目作为依赖项安装在供应商目录中,而是安装在项目文件夹的根目录中,另外我不想使用 composer 自动加载器。
编辑:
根据要求,我在项目根目录中的完整作曲家文件:
{
"name": "wdb/tutorial-oop",
"type": "project",
"description": "Your package description goes here",
"keywords": ["oop","mvc","tutorial"],
"homepage": "https://barlians.com",
"license": "GPL-3.0-or-later",
"authors": [
{
"name": "David Bruchmann",
"email": "david.bruchmann@gmail.com",
"homepage": "https://barlians.com",
"role": "Author, Developer"
}
],
"support": {
"email": "david.bruchmann@gmail.com"
},
"require": {
"smarty/smarty": "~3.1"
}
}
【问题讨论】:
-
您不应该将您的项目添加到
require部分。您已经拥有了,无需再次安装。 -
@rob006 我只在最后一个本地作曲家文件中这样做,并使用“作曲家安装”执行。这与我在命令行上的想法相同
composer require my/project -
composer 只是处理和接触供应商文件夹。并直接提示:如果您是 composer 新手,请不要手动编写 composer.json。看看供应商/作曲家 - 它将是自动加载器
-
@NormanM 谢谢,你建议如何创建作曲家文件?
-
@NormanM 关于自动加载器我知道作曲家正在提供它。我刚刚专门为这个项目写了一个。
标签: composer-php