2015-04-05 135 views
1

我试图在作曲家中安装某个包到某个路径,包名是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" 
    } 
} 

什么我错在这里做什么?

回答

4

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

asset-installer-paths directive的所属的作曲插件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凉亭或NPM资产?

3.我在做什么错在这里?

您认为,您可以使用asset-installer-paths指令将包移动到特定文件夹。你不能。因为您的回购并非Bower或NPM资产。

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

停止尝试。这是浪费时间。为什么? Composer有一个自动加载器,他执行从类名到文件名的映射。请不要关心路径,只需定义自动加载策略(文件或类图)并开始使用您的课程。

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

+0

嗯,很奇怪。我的主要PHP框架是'Yii2',它已经使用'asset-installer-paths',我只是增加了一个额外的行。我会用完整的'extra'部分更新我的问题。 – Brett 2015-04-05 10:31:06

+0

好的。我已经更新了我的答案。 – 2015-04-05 13:23:38

+0

好的 - 谢谢。没有什么大不了的,谢谢你的信息。 – Brett 2015-04-05 13:27:22