composer-php - 在 Composer 中创建项目时如何使用全局 composer.json?
问题描述
我添加了以下配置,如果我需要全局包,一切正常。每个包都会从 mirrors.aliyun.com 安装
composer global config repo.packagist composer https://mirrors.aliyun.com/composer/
和内容来自~/.composer/composer.json
{
"require": {
"laravel/installer": "^4.0",
"laravel/valet": "^2.11"
},
"repositories": {
"packagist": {
"type": "composer",
"url": "https://mirrors.aliyun.com/composer/"
}
}
}
但是如果我用这样的作曲家创建项目,我发现从https://repo.packagist.org/packages.json下载包
composer create-project --prefer-dist laravel/laravel sample.com -vvv
我需要从镜像下载,但是全局composer.json中的配置被忽略了,有人知道这是为什么吗?
这是一些相关的日志
Reading /Users/jack/.composer/composer.json
Loading config file /Users/jack/.composer/config.json
Loading config file /Users/jack/.composer/auth.json
Loading config file /Users/jack/.composer/composer.json
Loading config file /Users/jack/.composer/auth.json
Reading /Users/jack/.composer/auth.json
Reading /Users/jack/.composer/vendor/composer/installed.json
Creating a "laravel/laravel" project at "./sample.com"
Downloading https://repo.packagist.org/packages.json
更新@ 19:55
我添加--repository
参数,然后laravel/laravel
从镜像存储库下载模板
composer create-project laravel/laravel sample.com --prefer-dist --repository=https://mirrors.aliyun.com/composer/ -vvv
但是下载后laravel/laravel
,还是从Packagist下载,这里有一些相关日志
Reading /Users/cuimingda/.composer/composer.json
Loading config file /Users/cuimingda/.composer/config.json
Loading config file /Users/cuimingda/.composer/auth.json
Loading config file /Users/cuimingda/.composer/composer.json
Loading config file /Users/cuimingda/.composer/auth.json
Reading /Users/cuimingda/.composer/auth.json
Reading /Users/cuimingda/.composer/vendor/composer/installed.json
Creating a "laravel/laravel" project at "./api.mingda.net"
Downloading https://mirrors.aliyun.com/composer/packages.json
Installing laravel/laravel (v7.25.0)
Created project in /Users/cuimingda/Sites/api.mingda.net
Reading ./composer.json
Reading /Users/cuimingda/.composer/composer.json
Loading config file /Users/cuimingda/.composer/config.json
Loading config file /Users/cuimingda/.composer/auth.json
Loading config file /Users/cuimingda/.composer/composer.json
Loading config file /Users/cuimingda/.composer/auth.json
Reading /Users/cuimingda/.composer/auth.json
Reading /Users/cuimingda/.composer/vendor/composer/installed.json
> post-root-package-install: @php -r "file_exists('.env') || copy('.env.example', '.env');"
Executing command (CWD): '/usr/local/Cellar/php/7.4.8/bin/php' -d allow_url_fopen='1' -d disable_functions='' -d memory_limit='1536M' -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Downloading https://repo.packagist.org/packages.json
解决方案
我自己找到了答案。
请勿使用以下方法设置镜像,因为它们会修改~/.composer/composer.json
,并且composer.json
在创建项目时不起作用
composer global config repo.packagist composer https://mirrors.aliyun.com/composer/
正确的方式 - 手动将以下代码放入~/.composer/config.json
,无论是否composer global require
,composer create-project
它们都会从镜像站点获取文件,而不是从 packagist.org
{
"config": {},
"repositories": [
{
"type": "composer",
"url": "https://mirrors.aliyun.com/composer/"
},
{
"packagist": false
}
]
}
无需添加任何与 configto 相关的存储库~/.composer/composer.json
{
"require": {
"laravel/installer": "^4.0",
"laravel/valet": "^2.11"
}
}
推荐阅读
- javascript - 是否可以在对象模式中包含不同的键?
- python - 删除重复项而不更改二维列表中的顺序
- kdb - KDB/Q 我们如何计算移动中位数
- flutter - 颤振中Bloc中的ObservableList替换?
- r - 基于其他两个数据框创建一个额外的列
- html - 边距:自动;不垂直居中 div
- android - 异步加载项目时设置recyclerView高度
- python - 将轴添加到 .png 文件
- c++ - 如何使用 C++ 中的 boost 库(在 Visual Studio 2019 中)创建 3 个并行执行线程?
- python - 如何在 Ubuntu 20.04 上为 Python 3.9 安装 pip