第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在用戶通過 Composer 安裝我的軟件包后運(yùn)行腳本?

如何在用戶通過 Composer 安裝我的軟件包后運(yùn)行腳本?

PHP
皈依舞 2022-08-19 10:49:16
我使用該命令安裝自己的框架。composer require otra/otra:dev-develop --no-update --no-cache && composer update --no-autoloader我已經(jīng)把這個(gè)部分放在我的框架中:composer.json"scripts": {     "pre-install-cmd": "@composer config bin-dir bin/"     }但是 Composer 不會(huì)運(yùn)行它。這是否正常,Composer 是否將其視為依賴項(xiàng)而不是根包,因此它不允許我的腳本運(yùn)行?如果是這種情況,我怎么能有相同的行為呢?我想:將我的二進(jìn)制文件放在文件夾中,不必要求用戶手動(dòng)執(zhí)行符號(hào)鏈接(或其他解決方案)binvendor/bin將文件夾從我的框架復(fù)制到項(xiàng)目的根目錄。web編輯 :使用創(chuàng)建項(xiàng)目命令如果我輸入,我得到這個(gè):composer create-project otra/otra:dev-develop crashtest --remove-vcscomposer.json{  "name": "otra/otra",  "type": "library",  "description": "The OTRA PHP framework",  "keywords": ["framework"],  "homepage": "https://github.com/lperamo/otra",  "license": "X11",  "authors": [    {      "name": "Lionel Péramo",      "email": "contact@lionel-peramo.com",      "homepage": "https://wexample.com"    }  ],  "bin" : ["otra.php"],  "config": {    "bin-dir" : "bin/",    "sort-packages": true  },  "require": {    "ext-mbstring": "*",    "php": ">=7.4.0",    "symfony/yaml": "^4.0"  },  "require-dev": {    "ext-pdo": "*",    "ext-pdo_mysql": "*"  },  "scripts": {    "pre-install-cmd": "@composer config bin-dir bin/"  }}這與我的框架完全相同,所以我無法通過Composer更新它。如果我不使用,我可以用git,但這不是目標(biāo)。--remove-vcs該命令的輸出為:composer安裝 otra/otra (dev-develop ab37237565155dab11812a7b2982d30ee240f051)安裝 otra/otra (dev-develop ab37237): 從緩存克隆 ab37237565在崩潰測(cè)試中創(chuàng)建的項(xiàng)目加載包含包信息的作曲家存儲(chǔ)庫從鎖定文件安裝依賴項(xiàng)(包括 require-dev)
查看完整描述

2 回答

?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊

僅執(zhí)行在項(xiàng)目的正確文件中定義的腳本。composer.json

來自必需和已安裝軟件包的腳本永遠(yuǎn)不會(huì)執(zhí)行,因?yàn)檫@將帶來可怕的安全風(fēng)險(xiǎn)。

這在文檔中進(jìn)行了簡(jiǎn)要說明:

僅執(zhí)行根包的 composer.json 中定義的腳本。如果根包的依賴項(xiàng)指定了自己的腳本,則 Composer 不會(huì)執(zhí)行這些其他腳本。

如果包用戶需要執(zhí)行其他步驟才能使用包或庫,請(qǐng)?jiān)诎臋n中解釋這些步驟,并提供他們可以手動(dòng)執(zhí)行的腳本,并將為他們執(zhí)行這些步驟。


如果你的包是一個(gè)“框架”,而不是一個(gè)庫,你可以做的就是利用作曲家命令create-project

這將要求您設(shè)置具有項(xiàng)目默認(rèn)結(jié)構(gòu)的存儲(chǔ)庫,這反過來又取決于您的包。

例如,這就是Symfony的Skeleton的方式。

使用這種設(shè)置,您可以創(chuàng)建自定義安裝腳本并使用 激活它們,并使用類似的東西執(zhí)行一些額外的設(shè)置步驟,甚至是交互式設(shè)置步驟。(文檔post-create-project-cmd)

請(qǐng)注意,此腳本僅在 使用 安裝包時(shí)運(yùn)行,而在使用 時(shí)永遠(yuǎn)不會(huì)運(yùn)行。create-projectrequire


查看完整回答
反對(duì) 回復(fù) 2022-08-19
?
達(dá)令說

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊

沒有人提到,這可以通過創(chuàng)建一個(gè)作曲家插件和定義事件處理程序來實(shí)現(xiàn)。


查看完整回答
反對(duì) 回復(fù) 2022-08-19
  • 2 回答
  • 0 關(guān)注
  • 139 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)