前置操作(satis安裝)
#這裡的 /var/www/packagist.satis.cc 只是舉個例子,以自己實際的資料夾為準
git clone https://github.com/composer/satis.git /var/www/packagist.satis.cc
然後 在 nginx 加一個 packagist.satis.cc
的配置,指向 /var/www/packagist.satis.cc/public
(略)
例示配置
對裡面的 /var/www/packagist.satis.cc/satis.json
檔案的配置
{
"name": "Easy Repository",
"homepage": "http://packagist.satis.cc",
"repositories": [
{"type": "vcs","url": "https://gitlab.local.com/aBigPackage/helloWorld"},
{"type": "composer", "url": "https://packagist.laravel-china.org"}
],
"archive": {
"directory": "dist",
"format": "tar",
"skip-dev": true,
"prefix-url": "http://packagist.satis.cc"
},
"abandoned":{
"lastcraft/simpletest" : "simpletest/simpletest"
},
"require":{
"monolog/monolog": "*",
"darkaonline/l5-swagger": "~5.4",
"laravel/laravel":"~5.4",
"league/flysystem-aws-s3-v3":"*",
"zircote/swagger-php":"*",
"simpletest/simpletest":"*"
},
"require-all": false,
"require-dependencies": true,
"require-dev-dependencies": true
}
配置解釋
// Composer 私有源的名稱,可隨意
"name": "Easy Repository",
// 建立之後home頁面的地址(用於檢視這個源有哪些package)
"homepage": "http://packagist.satis.cc",
// 獲取package的地址
/**
這裡如果你是需要從私有的git源獲取package的話,就參照如下這樣寫就可以了
(帶.git和不帶.git似乎都ok)
{"type": "vcs","url": "https://gitlab.local.com/aBigPackage/helloWorld"}
如果你是需要構建內網的源,且內外網分離的情況下從外網獲取package到內網,就參照下面這樣寫就好了
(沒有必要挨個去寫需要引用的package的github地址)
{"type": "composer", "url": "https://packagist.laravel-china.org"}
*/
"repositories": [
{"type": "vcs","url": "https://gitlab.local.com/aBigPackage/helloWorld"},
{"type": "composer", "url": "https://packagist.laravel-china.org"}
],
//如果需要satis將package下載到本地,直接從本地拉取,則需要配置這一項
//(內網源必須配置此項)
"archive": {
"directory": "dist",
//tar or zip
"format": "tar",
//是否需要為分支建立下載(預設只對有tag的提交建立下載)
"skip-dev": false,
"prefix-url": "http://packagist.satis.cc"
},
// 被拋棄或替換的package
"abandoned":{
//true表示這個 package 真正的被拋棄
"lox/simpletest":true
//表示 lastcraft/simpletest 被 simpletest/simpletest 替換
"lastcraft/simpletest" : "simpletest/simpletest"
},
// 需要 satis 的全部的 package
"require":{
"monolog/monolog": "*",
"darkaonline/l5-swagger": "~5.4",
"laravel/laravel":"~5.4",
"league/flysystem-aws-s3-v3":"*",
"zircote/swagger-php":"*",
"simpletest/simpletest":"*"
},
//是否需要將配置的源的全部的package都拉取
"require-all": false,
//是否自動解決依賴
"require-dependencies": true
//是否自動解決dev依賴
"require-dev-dependencies": true
build
在 /var/www/packagist.satis.cc
資料夾下執行命令:
// 全部需要的package重新檢查更新並構建
// 強烈推薦追加 --skip-errors 引數,否則碰到某些已經被放棄的 package 會卡住構建
php bin/satis build satis.json public/ --skip-errors
// 僅僅重新檢查更新並構建指定的幾個包
php bin/satis build satis.json public/ A/package B/other-package
// 如果只想掃描單個儲存庫並更新其中找到的所有包,請將VCS儲存庫URL作為可選引數傳遞:
php bin/satis build --repository-url https://only.my/repo.git satis.json public/
使用 Composer 私有源
有兩種方法可以讓composer去使用私有源
區域性
- 在 composer.json 裡新增
"repositories": [ { "type": "composer", "url": "http://packagist.satis.cc" } ],
全域性
- 將composer全域性的源換成私有源
composer config -g repo.packagist composer https://packagist.laravel-china.org
引入
在引入的時候,如果因為其他 package 已經被改的面目全非導致報錯 無法引入你需要的package
,推薦 --ignore-platform-reqs
引數
composer require xxx/xxxpackage --ignore-platform-reqs
FAQ
-
composer 報 SSL 相關問題
- 這個可以網上找一下解決方案,錯誤資訊搜一下就有了。。。
-
對 satis 執行 build 的時候的引數有沒有什麼文件可以看啊!
- 推薦直接在命令列下使用以下命令看引數列表,快捷方便
php bin/satis build --help //---- or ---- php bin/satis --help
- 推薦直接在命令列下使用以下命令看引數列表,快捷方便
待補充
more
個人認為主要的配置項大概是這麼些,如果有更多需求,例如需要http驗證,ssl驗證等的配置請查閱 官方文件
參考來源:
- Composer satis: 官方手冊 (對各個配置項的介紹極度詳細,推薦)
- https://learnku.com/laravel/t/1900/use-satis-to-build-a-private-composer-warehouse
在此基礎上進行 修改,整理,編輯
links: