2015-04-05 105 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