本章為參考手冊,無須全數熟讀,有需要時再查閱即可。
CLI 語法
cordova <command> [選項] -- [平台專屬參數]Code language: CSS (css)
全域命令清單
不用進入 Cordova 專案目錄即可執行
| 命令 | 說明 |
|---|---|
| create | 建立新專案 |
| help | 檢視指定命令的說明文件 |
| config | 設定、查詢、刪除、編輯、列出 Cordova 全域組態項目 |
專案命令清單
必須在有效的 Cordova 專案根目錄執行
| 命令 | 說明 |
|---|---|
| info | 輸出專案環境資訊 |
| requirements | 偵測並印出對應平台所需的所有相依環境 |
| platform | 管理專案平台(Android/iOS/Browser等) |
| plugin | 管理專案外掛 |
| prepare | 將資源檔複製到各平台目錄,為編譯作準備 |
| compile | 編譯指定平台專案 |
| build | 建置應用程式(等同 prepare + compile) |
| clean | 清除平台編譯產生的快取成品 |
| run | 執行應用程式(內部依序執行 prepare + compile + 部署啟動) |
| serve | 啟動本機 Web 伺服器預覽網頁資源(內部執行 prepare) |
通用選項(全部 CLI 命令皆支援)
| 參數 | 說明 |
|---|---|
| -d / –verbose | 輸出詳細記錄。如果你在 Node 程式碼呼叫 cordova-cli,可以監聽 log、warn 事件取得記錄:cordova.on('log', ()=>{}) |
| -v / –version | 顯示目前 Cordova CLI 版本 |
| –nohooks | 禁止執行掛鉤指令碼(hook),支援正規表示式過濾掛鉤 |
平台專屬參數說明
部分命令支援平台自訂參數(platformOpts)。
需使用 -- 作為分隔符號:-- 之前由 Cordova CLI 解析,-- 之後所有參數直接傳遞給對應原生平台建置工具。
CLI 使用範例
示範完整工作流程:
- 建立專案
- 安裝相機外掛
- 新增 Android 平台
- 編譯、執行 Android
- 使用 Android 簽章參數打包正式版本
# 建立專案
cordova create myApp com.foxdevelop.myApp myApp
cd myApp
# 新增相機外掛
cordova plugin add cordova-plugin-camera
# 新增 Android 平台
cordova platform add android
# 檢查 Android 編譯環境相依
cordova requirements android
# 編譯 Android(輸出詳細記錄)
cordova build android --verbose
# 在裝置/模擬器執行 App
cordova run android
# Release正式版本並傳入簽章參數
cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykeyCode language: PHP (php)
各命令詳細說明
cordova create
建立 Cordova 專案目錄結構。
語法:
cordova create path [套件ID [應用程式名稱]] [選項]Code language: CSS (css)
參數
| 值 | 說明 |
|---|---|
| path | 專案資料夾(資料夾不可事先存在,CLI會自動建立) |
| id | 套件識別碼,預設:org.apache.cordova.hellocordova反向網域名稱格式,對應 config.xml 的 widget id;會用於產生 Java 套件名稱,建議妥善設定 |
| name | 應用程式顯示名稱,預設:Hello Cordova對應 config.xml name,會產生為原生專案類別名稱 |
選項
--template:使用本機/NPM/GitHub自訂範本建立專案
cordova create myapp com.mycompany.myteam.myapp MyAppCode language: CSS (css)
cordova platform
管理平台:新增、移除、更新、列出平台。增刪平台會修改專案 platforms 目錄。
cordova {platform | platforms} [
add <平台描述> [...] {--save | link=<路徑> } |
{remove | rm} 平台 [...] {--save}|
{list | ls} |
update ]Code language: HTML, XML (xml)
子命令與參數
| 子命令 | 參數 | 說明 |
|---|---|---|
| add <平台描述> | 新增平台 | |
| –nosave | 安裝後不將平台資訊寫入 config.xml / package.json | |
| –link= | 使用本機平台原始碼時建立符號連結,而非複製檔案(供平台開發除錯使用) | |
| remove <平台> | 刪除平台 | |
| –nosave | 刪除平台,但不移除 config.xml / package.json 內的記錄 | |
| update <平台> | 更新平台版本 | |
| –save | 更新 config.xml 記載的平台版本 | |
| list / ls | 列出所有已安裝與可用平台 |
平台描述格式 <platform-spec>
平台[@版本號] | 本機路徑 | Git位址[#分支/tag/commit]Code language: PHP (php)
- platform:平台名稱 android / ios / browser / electron
- version:語意化版本 semver,例如
^13.0.0 - path:本機平台原始碼目錄 / tar壓縮檔
- url:Git倉庫位址
- commit-ish:指定分支、tag、commit雜湊;未指定預設 master
支援平台
android、browser、electron、ios
# 新增Android+iOS,並寫入組態檔
cordova platform add android ios
# 指定版本新增Android平台
cordova platform add android@^13.0.0
# 從Git倉庫指定tag安裝平台
cordova platform add https://github.com/myfork/cordova-android.git#13.0.0
# 從本機目錄安裝平台
cordova platform add ../android
# 移除Android平台
cordova platform rm android
# 檢視所有平台
cordova platform lsCode language: PHP (php)
cordova plugin
管理專案外掛
cordova {plugin | plugins} [
add <外掛描述> [..] {--searchpath=<目錄> | --noregistry | --link | --save | --force} |
{remove | rm} {<外掛ID> | <名稱>} --save |
{list | ls}
]Code language: HTML, XML (xml)
子命令參數
| 子命令 | 參數 | 說明 |
|---|---|---|
| add <外掛描述> | 新增外掛 | |
| –searchpath <目錄> | 搜尋外掛時優先查詢本機目錄,多路徑分隔符:Windows ;、Linux/Mac : | |
| –noregistry | 不從npm官方套件庫取得外掛 | |
| –link | 本機外掛目錄安裝時建立符號連結(外掛開發除錯) | |
| –nosave | 不寫入 config.xml / package.json | |
| –force | 強制覆蓋衝突檔案(6.1版本新增) | |
| remove | 刪除外掛 | |
| –nosave | 刪除外掛但保留組態檔記錄 | |
| list / ls | 列出已安裝外掛 |
外掛描述格式 <plugin-spec>
[@scope/]外掛ID[@版本] | 本機目錄 | Git位址[#commit][:子目錄]Code language: PHP (php)
外掛解析優先順序(由高至低)
- 命令列明確指定之外掛與版本
- config.xml / package.json 儲存的外掛資訊
- npm上相容目前專案的最新版本(外掛package.json宣告cordova相依)
- npm上該外掛最新版本
# 安裝相機、檔案外掛,優先從../plugins搜尋
cordova plugin add cordova-plugin-camera cordova-plugin-file --searchpath ../plugins
# 指定版本安裝
cordova plugin add cordova-plugin-camera@^2.0.0
# 從本機目錄安裝外掛
cordova plugin add ../cordova-plugin-camera
# 刪除外掛
cordova plugin rm cordova-plugin-camera
# 檢視外掛清單
cordova plugin lsCode language: PHP (php)
外掛衝突說明
部分外掛透過 plugin.xml 的 edit-config 修改原生組態檔。
多個外掛同時修改同一個XML節點時會產生衝突,CLI預設阻止安裝。
解決方式:
- 修改外掛 plugin.xml,避免修改同一節點(建議方案)
- 使用
--force強制安裝(⚠️ 風險:會覆蓋其他外掛的修改,可能造成其他外掛失效)
cordova prepare
將 config.xml 組態同步至各平台原生資訊清單檔;複製圖示、啟動畫面、外掛資源;讓專案符合原生SDK編譯條件。
cordova prepare [平台名稱...]Code language: CSS (css)
未指定平台則全部執行。
cordova compile
僅執行編譯,不會自動執行 prepare。一般直接使用 build,多半用於掛鉤擴充場景。
cordova compile [平台...]
[--debug | --release]
[--device | --emulator | --target=<名稱>]
[--buildConfig=<檔案>]
[-- 平台參數]Code language: CSS (css)
cordova build
等同 prepare + compile,建置應用程式封包。
cordova build [平台...]
[--debug | --release]
[--device | --emulator]
[--buildConfig=<組態檔>]
[-- 平台參數]Code language: CSS (css)
| 參數 | 說明 |
|---|---|
| –debug | Debug偵錯封包 |
| –release | Release正式發行封包 |
| –device | 建置適用實體裝置的封包 |
| –emulator | 建置模擬器架構封包 |
| –buildConfig | 指定建置組態檔,預設為專案根目錄 build.json,常用於簽章設定 |
cordova build android --release --buildConfig=build.json
cordova build android --release -- --keystore="app.keystore" --alias=key0Code language: JavaScript (javascript)
cordova run
依序執行 prepare → build → 將應用部署至實體裝置/模擬器並啟動。
cordova run [平台...]
[--list | --debug | --release]
[--noprepare]
[--nobuild]
[--device | --emulator | --target=<名稱>]
[--buildConfig=<檔案>]
[-- 平台參數]Code language: CSS (css)
| 參數 | 說明 |
|---|---|
| –list | 列出所有可用實體裝置、模擬器 |
| –noprepare | 跳過prepare(6.2+) |
| –nobuild | 跳過編譯,直接部署現有安裝封包 |
| –target | 指定模擬器/裝置名稱,搭配 --list 查詢名稱 |
範例:
# 列出裝置
cordova run android --list
# 指定模擬器執行
cordova run android --target=Nexus_5_API_23_x86
# 不重新編譯,直接執行
cordova run android --nobuildCode language: PHP (php)
cordova emulate
cordova run --emulator 的別名,僅在模擬器啟動應用程式。
cordova clean
清除各平台編譯快取成品
cordova clean android
cordova requirements
偵測平台所需所有環境相依(JDK、Android SDK、Xcode等)
cordova requirements android
所有相依滿足時回傳結束代碼0,缺少相依則回傳非0,適用於自動化建置環境檢查。
cordova info
輸出完整環境、平台、外掛資訊,回報錯誤時必備資訊。
cordova info
cordova serve
啟動本機 Web 服務預覽 www網頁資源,預設連接埠8000
cordova serve 8080
# 存取位址:http://127.0.0.1:8080/android/wwwCode language: PHP (php)
cordova help
檢視命令說明
cordova help build
cordova build -h
cordova config
管理 Cordova 全域組態
cordova config ls # 列出全部組態
cordova config set save-exact true
cordova config get save-exact
cordova config delete save-exact
cordova config editCode language: PHP (php)
Cordova 命令列工具(CLI)(參考手冊)