PHP作曲家:没有坚持的开发模式

2022-08-30 16:09:16

当您或项目使用 Composer 时,您可以告诉它跳过与开发相关的依赖项(测试、构建工具等),并带有该标志installupdate--no-dev

composer.phar update --no-dev

如果没有此标志,Composer 将始终下载额外的依赖项。

有没有办法(以编程或其他方式)告诉作曲家始终跳过开发依赖项?也就是说,是否有任何与伪代码匹配的真实代码

//File: composer.json
//...
"no-dev":"true"
//...

答案 1

简而言之:不 - 还没有。

Composer 的默认安装模式是安装开发依赖项。

据我所知,只有CLI选项,没有配置选项。--no-dev

可以在项目的 composer.json 中定义配置部分,请参阅 https://getcomposer.org/doc/04-schema.md#config

但快速浏览一下源代码就会发现,没有针对此的配置指令。https://github.com/composer/composer/blob/master/src/Composer/Config.php#L22

{
    "config": {
        "no-dev": "true"
    }
}

+1 这个想法。它可能是对 Config 类的有用补充。


答案 2

这真的很烦人,所以我终于写了一个简单的bash脚本,询问环境并运行正确的命令:

#! /bin/bash

read -p "Which environment use to deploy: (P)roduction (T)est (D)ev? (p/t/d): " -n 1 -r
echo

if [[ $REPLY =~ ^[^PpTtDd]$ ]]; then
    echo "Incorrect environment";
    exit 1;
fi

# tasks to run before composer install (svn up/git pull)

if [[ $REPLY =~ ^[Pp]$ ]]; then
    composer install --prefer-dist --no-dev --classmap-authoritative
elif [[ $REPLY =~ ^[Tt]$ ]]; then
    composer install --prefer-dist --classmap-authoritative
elif [[ $REPLY =~ ^[Dd]$ ]]; then
    composer install
fi

# additional tasks after composer install (clear cache, migrations, etc.)

将其保存在项目中并添加了执行权限。所以现在我用的是代替:bin/deploybin/deploycomposer install

console

我还把其他常见任务放在那里(从VCS拉取更改,清除缓存,运行迁移等),所以我在部署:)期间要做的事情更少,要记住的事情更少。


推荐