2017-01-21 105 views
2

比方說,我們有以下的目錄結構,我們假設my-package上也存在Packagist:如何強制Composer下載本地包?

- apps 
\_ my-app 
    \_ composer.json 
- packages 
\_ my-package 
    \_ composer.json 

要添加my/package爲我的應用程序的依賴,the documentation狀態,我們可以使用以下配置:

{ 
    "repositories": [ 
     { 
      "type": "path", 
      "url": "../../packages/my-package" 
     } 
    ], 
    "require": { 
     "my/package": "*" 
    } 
} 

但是,當我composer update,依賴仍然從Packagist下載。所以,看,我禁用Packagist.org:

{ 
    "repositories": [ 
     { 
      "type": "path", 
      "url": "../../packages/my-package", 
      "packagist.org": false 
     } 
    ], 
    "require": { 
     "my/package": "*" 
    } 
} 

我清除緩存與composer clearcache,與composer remove my/package去除my/packagecomposer require my/package --prefer-source再次安裝它(我不明白,如果--prefer-source僅用於VCS)。下載的包仍然不是本地的。如何強制作曲家使用本地作曲家?

回答

3
"require": { 
    "my/package": "*" 
} 

VCSpath庫類型的情況下,你應該指定你的包,你需要的版本。因此,不是像目前一​​樣使用*,而是將其更改爲@dev

"require": { 
    "my/package": "@dev" 
}