首页 文章

作曲家没有解析composer.json

提问于
浏览
0

我创建了一个包 . 在bundle中,我在数据库中创建了两个表 . 这是我的composer.json .

{
    "name": "xxxx/xxx-designer",
    "description": "XXXX",
    "license": "MIT",
    "homepage": "https://github.com/giturl",
    "autoload": {
        "psr-0": {
            "": "src/"
        }
    },
    "authors": [
        {
            "name": "xxxx",
            "email": "xxxx@gmail.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {
        "php": ">=5.3.0",
    },
    "scripts": {
        "post-install-cmd": [
            "Acme\\Bundle\\DemoBundle\\Composer\\AcmeHandler::InstallTabs"
        ],
        "post-update-cmd": [
            "Acme\\Bundle\\DemoBundle\\Composer\\AcmeHandler::InstallTabs"
        ]
    },
    "extra": {
        "branch-alias": {
            "dev-master": "1.0.x-dev"
        }
    }
}

现在问题是当我执行 php composer.phar update 然后composer不执行post-update-cmd或post-install-cmd但是如果将以下行添加到main composer.json中

"scripts": {
    "post-install-cmd": [
        "Acme\\Bundle\\DemoBundle\\Composer\\AcmeHandler::InstallTabs"
    ],
    "post-update-cmd": [
        "Acme\\Bundle\\DemoBundle\\Composer\\AcmeHandler::InstallTabs"
    ]
},

然后 php composer.phar update 执行此命令,我的表格将被创建我想知道为什么作曲家不从我的包中执行命令's composer.json. please help why composer not execute script from bundle' s composer.json

2 回答

  • 1

    取自the docs

    Note: Only scripts defined in the root package's composer.json are executed.
      If a dependency of the root package specifies its own scripts, Composer does not
      execute those additional scripts.
    
  • 1

    不幸的是,您不能使用供应商安装后/更新脚本来做到这一点 .

    BUT

    看看它是如何在BraincraftedBootstrapBundle中解决的:

    They have a separate command to copy the icons

    我表明它可以添加到composer.json中 . BraincraftedBootstrapBundle -> Installing Glyphicons

相关问题