【问题标题】:"composer install" invokes post-update-cmd instead of post-install-cmd“composer install”调用 post-update-cmd 而不是 post-install-cmd
【发布时间】:2019-08-02 00:16:46
【问题描述】:

我有这个简单的 composer.json 文件。当我运行“composer install”时,我希望它运行 post-install-cmd 脚本,但没有任何反应。如果我将其更改为 post-update-cmd 它会按预期工作。我错过了什么吗?不是必须运行 post-install-cmd 而不是 post-update-cmd 吗?

{
    "name": "vendorName/packageName",
    "description": "Some description",
    "type": "library",
    "require": {
        "psr/log": "^1.1"
    },
    "scripts": {
        "post-install-cmd": "$SHELL script.sh"
    }
}

【问题讨论】:

  • post-install-cmd: occurs after the install command has been executed with a lock file present.你有.lock文件吗?
  • 我第一次运行“composer install”时它不存在。我正在使用“composer init”来创建 composer.json 文件。我对“你想现在安装依赖项吗?因此我没有 composer.lock 文件,直到我发出“composer install”这个问题的回答是“否”。谢谢你的提示。

标签: php composer-php


【解决方案1】:

如果项目的根目录中没有锁定文件 (composer.lock),则在运行composer install 时会调用(pre|post)-update-cmd

composer install 命令用于在锁定文件中安装依赖项。

如果没有composer.lock,它将在内部运行composer update 来解决依赖关系并为您生成锁定文件。

来自install 命令的documentation

如果没有 composer.lock 文件,Composer 将在依赖解析后创建一个。

【讨论】:

    猜你喜欢
    • 2015-07-31
    • 2013-10-08
    • 1970-01-01
    • 2014-08-05
    • 2021-05-03
    • 2018-12-03
    • 2017-08-14
    • 2021-08-07
    • 1970-01-01
    相关资源
    最近更新 更多