利用作曲家资产安装程序路径不起作用

Utilising composers asset-installer-paths not working

我正在尝试将 composer 中的某个包安装到某个路径中,包名称是 cyphix333/nbbc 通常它会安装到 vendor/cyphix333/nbbc 但我想将它安装到 vendor/nbbc 所以我在主项目中尝试了这个 composer.json

"require": {
    //......
    "cyphix333/nbbc": "dev-master"
},

"extra": {
    "asset-installer-paths": {
        //.....
        "cyphix333/nbbc": "vendor/nbbc"
    }
}

但是它没有用,它仍然安装到 vendor/cyphix333/nbbc

编辑: ...这里是 extra 部分的完整数据,来自我的 php 框架 yii2 :

"extra": {
    "yii\composer\Installer::postCreateProject": {
        "setPermission": [
            {
                "runtime": "0777",
                "web/assets": "0777",
                "yii": "0755"
            }
        ],
        "generateCookieValidationKey": [
            "config/web.php"
        ]
    },
    "asset-installer-paths": {
        "npm-asset-library": "vendor/npm",
        "bower-asset-library": "vendor/bower",
        "cyphix333/nbbc": "vendor/nbbc"
    }
}

我做错了什么?

1. asset-installer-paths = Composer 插件 fxp/composer-asset-plugin

asset-installer-paths directive 属于 Composer 插件 fxp/composer-asset-plugin。 插件是必需的,这个指令才能工作。但是您不需要在您的项目回购或全球范围内使用它。

Docu - Installation

composer require "fxp/composer-asset-plugin:~1.0"

composer global require "fxp/composer-asset-plugin:~1.0"

2。 cyphix333/nbbc 是 Bower 还是 NPM 资产?

没有。

3。我在这里做错了什么?

你认为,你可以使用 asset-installer-paths 指令将你的包移动到一个特定的文件夹。你不能。因为您的存储库不是 Bower 或 NPM 资产。

4。如何将我的包裹从 vendor/cyphix333/nbbc 移动到 vendor/nbbc

别这样了。这是浪费时间。为什么? Composer 有一个自动加载器,他负责从 classname 到文件名的映射。请不要关心路径,只需定义一个自动加载策略(文件或 classmap)并开始使用你的 class.

如果您确实需要复制内容,可以使用 composer.json 的 scripts 部分。 https://getcomposer.org/doc/articles/scripts.md