2014-09-05 77 views
4

我試圖通過作曲CakePHP中的應用程式安裝jQuery的元件,composer.json:作曲家安裝jQuery的成分在錯誤的目錄

{ 
    "name": "affiliate", 
    "require": { 
     "cakephp/cakephp": "2.5.*", 
     "cakephp/debug_kit": "2.2.*@dev", 
     "cakedc/utils": "dev-develop", 
     "cakedc/search": "dev-develop", 
     "friendsofcake/crud": "3.*", 
     "components/jquery": "2.*" 
    }, 
    "config": { 
     "vendor-dir": "Vendor/" 
    } 
} 

而且它在app/Vendor/components/jquery安裝一些文件,還創建並安裝APP根目錄中的一些文件 - app/components/jquery。我想要所有的供應商之一,我該如何解決?

回答

12

components/jquery包使用component-installer,這可以從composer.json指定component-dir設置這是你想要把下載的組件讀 - 例如在web/assets文件夾:

{ 
    "require": { 
     "components/jquery": "*" 
    }, 
    "config": { 
     "component-dir": "web/assets" 
    } 
} 

想了解更多關於此次檢查出的文檔here

然後,您可以將這些下載的Web /資產中的組件文件添加到.gitignore中,以便您不添加包管理器加載的文件。

如果你沒有這種做法的粉絲,那麼另外一個選擇是,你可以自己包庫添加到您的composer.json這樣的:

{ 
    "repositories": [ 
     { 
      "type": "package", 
      "package": { 
       "name": "jquery/jquery", 
       "version": "2.1.1", 
       "dist": { 
        "url": "http://code.jquery.com/jquery-2.1.1.js", 
        "type": "file" 
       } 
      } 
     } 
    ], 
    "require": { 
     "jquery/jquery": "2.1.1" 
    } 
} 

採用這種方法,作曲家將下載JS文件到vendor/jquery/jquery/jquery-2.1.1.js - 然後您可以從www根目錄中爲此添加一個符號鏈接。

+1

完美,謝謝!我選擇了第一個解決方案,因此'component/jquery'實際上是'ivaynberg/select2'的依賴關係,因此只更改'component-dir'就簡單多了。 – redd 2014-09-05 15:45:34

+0

希望我們可以將這些內容傳遞給/ dev/null。使用資產,我更願意從實際的供應商文件夾中提取特定的部分。感謝這一點,但現在我至少可以將它從根目錄中解脫出來。 – Saeven 2015-05-01 19:40:45