2017-09-13 354 views
0

之後,從包裝中取出隨機的文件,這是控制檯輸出(縮短了一下):作曲家安裝

λ composer require mpdf/mpdf 
Using version ^6.1 for mpdf/mpdf 
./composer.json has been updated 
Loading composer repositories with package information 
Updating dependencies (including require-dev) 
Package operations: 2 installs, 0 updates, 0 removals 
    - Installing setasign/fpdi (1.6.2): Downloading (100%) 
    - Installing mpdf/mpdf (v6.1.3): Downloading (100%) 
Writing lock file 
Generating autoload files 
Removed 31 files or directories. 

憑啥有最後一行?當我嘗試在我的項目中使用mPDF時,它不起作用(找不到文件),因爲大多數mPDF源文件在目錄中確實缺失。當我在composer緩存中查找時,所有文件都在那裏,所以composer可能會安裝所有文件,然後隨機刪除31個文件或目錄。爲什麼?我該如何解決這個問題?我嘗試使用包的更新版本,同樣的問題。

Composer版本:1.5.2(剛剛更新) 緩存在命令之前被清除。

回答

2

該行是由dg/composer-cleaner包引起的,我相信你已經安裝了。

卸載軟件包,它將停止刪除文件。

或者,您可以在安裝包忽略MPDF供應商目錄中,每包自述:

您還可以指定路徑通過composer.json被忽略。就我所知,通過瀏覽代碼,無法忽略整個包,因此必須明確指定根目錄中的所有文件和目錄。

{ 
    "require": { 
     "dg/composer-cleaner": "^1.1", 
     "mpdf/mpdf": "^6.1" 
    }, 
    "extra": { 
     "cleaner-ignore": { 
      "setasign/fpdi": [ 
       "fpdi_bridge.php", 
       "pdf_parser.php" 
      ], 
      "mpdf/mpdf": [ 
       "collations", 
       "font", 
       "includes", 
       "patterns", 
       "qrcode", 
       "tmp", 
       "ttfontdata", 
       "ttfonts", 
       ".gitignore", 
       "compress.php", 
       "config.php", 
       "config_fonts-distr-without-OTL.php", 
       "config_fonts.php", 
       "config_lang2fonts.php", 
       "config_script2lang.php", 
       "graph.php", 
       "graph_cache", 
       "iccprofiles", 
       "lang2fonts.css", 
       "mpdf.css", 
       "MpdfException.php", 
       "phpunit.xml", 
       "progbar.css", 
       "Tag.php" 
      ] 
     } 
    } 
} 

對於mPDF 7.x(現在處於beta版)來說,它應該會更容易一些,它具有更加精確的項目目錄結構。

+0

賓果!這是一個錯誤還是一個功能? :D –

+1

Dunno。可能是錯過了不太多的角落案例。 – Finwe