有沒有辦法將命令參數傳遞給Cordova-CLI掛鉤腳本?具體而言,我想爲一些客戶端申請一個應用程序,並且我希望在構建之前通過傳入一個ID號或其他內容來複制它們的特定設置。將參數添加到Cordova-CLI掛鉤腳本?
回答
您可以通過環境變量訪問傳遞給cordova鉤子的參數。您可以設置一個環境變量,該變量將保持當前會話的「活動狀態」。
例如,如果我們有一個叫做 '目標' 變量:
的Windows CMD:
SET TARGET=someValue
cordova build android
PowerShell的:
$env:TARGET = "someValue"
iex "cordova build android"
然後,您可以訪問您的掛鉤這些環境變量使用以下語法(假設您正在使用node.js編寫鉤子):
var target = "someDefaultValue";
// Check for existence of the environment variable
if (process.env.TARGET) {
// Log the value to the console
console.log('process.env.TARGET is set to: ' + process.env.TARGET);
// Override the default
target = process.env.TARGET;
}
// Log the set value
console.log('Target is set to: ' + target);
是的,通過查看CORDOVA_CMDLINE
環境變量,可以看到傳遞給Cordova的完整命令行。你應該看到它設置爲這樣的事情:
node /usr/local/bin/cordova build ios your_extra_parameters_can_go_here
看來,科爾多瓦忽略不承認(避免與破折號開始自己參數),這樣你就可以添加後自己的自定義值的任何參數平臺參數。
請記住,此功能是最近添加的(版本3.3.0)。所以如果這個變量沒有爲你設置,請嘗試升級你的Cordova。
引發此構建錯誤,如果您從其他腳本如grunt運行它,則會顯示爲失敗的構建。 平臺/ IOS /科爾多瓦/建造--qa 無法識別的標誌:--qa 錯誤:/Users/tom.hicks/Projects/CloudCast/client/platforms/ios/cordova/build:命令失敗,退出代碼2 在ChildProcess.whenDone(/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23) 在ChildProcess.emit(events.js:98:17) 在可能關閉(child_process.js:755:16) at Process.ChildProcess._handle.onexit(child_process.js:822:5) – majinnaibu
是的,我發現在最近的更新後這不再起作用。 Cordova一直在改變它如何處理命令行參數以及構建腳本的環境。 – andypaxo
我們一直忽略cordova build命令。所以我們的過程是在/ www中運行cordova編輯站點,然後在/ platforms/ios中打開/構建xcode項目。現在我只是保持xcode打開並運行cordova prepare --qa進行更改後,我在xcode中打開以開始調試。 – majinnaibu
查看使用科爾多瓦命令並通過你自己的命令集EG的:科爾多瓦運行的Android -e env_value
在你的鉤子,你可以通過使用CORDOVA_CMDLINE
查找通過-e命令在下面的bash腳本,我能夠通過命令中的每個字做一個循環傳遞
#!/bin/sh
(
command=${CORDOVA_CMDLINE}
for word in $command
do
if [ "$flag" = "true" ]
then
echo "Flag is true Word printed is: '$word'"
fi
if [ "$word" = "-e" ]
then
echo $flag
flag="true"
else
echo $word
flag="false"
fi
done
回聲上面的例子:科爾多瓦運行IOS -e「刺」
cordova
run
android
-e
Flag is true word printed is: prod
將hook腳本添加到config.xml中
- 1. 將掛鉤添加到TortoiseHg
- 2. 將whatis掛鉤添加到bash腳本中
- 3. 如何將html掛鉤添加到html
- 4. 將隱藏參數添加到腳本
- 5. 是否可以將SVN掛鉤添加到類似於git掛鉤的NPM?
- 6. Prestashop - 添加模塊掛鉤
- 7. 添加掛鉤到mysql結果(PHP)
- 8. H:outputScript - 添加參數腳本
- 9. 將附加參數添加到帶有可選參數的shell腳本中
- 10. 將腳本添加到LaunchScreen.storyboard?
- 11. 將視線模式掛鉤添加到tbemail
- 12. 如何將URL掛鉤添加到WHMCS訂單?
- 13. 在提交後掛鉤中將文件添加到存儲庫
- 14. 如何將上下文添加到Sequelize掛鉤?
- 15. 何處掛鉤編碼慣例腳本?
- 16. 全局鍵盤掛鉤停止腳本
- 17. CruiseControl.NET不執行Subversion掛鉤腳本
- 18. 客戶端掛鉤腳本執行
- 19. 運行PowerShell腳本作爲git掛鉤
- 20. 將數組添加到php腳本
- 21. Requirejs將參數添加到腳本元素
- 22. 將參數添加到Python中調用的PHP腳本中
- 23. JS將事件添加到腳本中作爲參數
- 24. 將另一個參數添加到我的腳本
- 25. 將參數添加到wsgi腳本別名
- 26. 將數據掛鉤添加到表格行數據的最佳方式
- 27. 將文本添加到LESS參數
- 28. 如何在Cherrypy中將工具掛鉤到多個掛鉤點?
- 29. 如何將參數/參數添加到咖啡腳本中的安全閉包
- 30. 如何添加多個SVN掛鉤
這是一個非常難以維護的解決方案 - 更好地將它組合成另一個命令的選項,然後該命令將調用cordova構建過程,如Gulp或Grunt。 – Hgehlhausen
如果在Mac終端上該怎麼辦? – Yawar