Cordova 命令列工具(CLI)(參考手冊)

本章為參考手冊,無須全數熟讀,有需要時再查閱即可。

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,可以監聽 logwarn 事件取得記錄:cordova.on('log', ()=>{})
-v / –version顯示目前 Cordova CLI 版本
–nohooks禁止執行掛鉤指令碼(hook),支援正規表示式過濾掛鉤

平台專屬參數說明

部分命令支援平台自訂參數(platformOpts)。
需使用 -- 作為分隔符號:-- 之前由 Cordova CLI 解析,-- 之後所有參數直接傳遞給對應原生平台建置工具


CLI 使用範例

示範完整工作流程:

  1. 建立專案
  2. 安裝相機外掛
  3. 新增 Android 平台
  4. 編譯、執行 Android
  5. 使用 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

支援平台

androidbrowserelectronios

# 新增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)

外掛解析優先順序(由高至低)

  1. 命令列明確指定之外掛與版本
  2. config.xml / package.json 儲存的外掛資訊
  3. npm上相容目前專案的最新版本(外掛package.json宣告cordova相依)
  4. 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.xmledit-config 修改原生組態檔。
多個外掛同時修改同一個XML節點時會產生衝突,CLI預設阻止安裝。
解決方式:

  1. 修改外掛 plugin.xml,避免修改同一節點(建議方案)
  2. 使用 --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)
參數說明
–debugDebug偵錯封包
–releaseRelease正式發行封包
–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)(參考手冊)

Previous:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *