部落格 RSS 訂閱

Apache Cordova 7.0.0
作者:Audrey So
2017年5月4日

我們很高興宣佈 Apache Cordova 7.0.0 已發佈!

最值得注意的變更包括

  • cordova@7.0.0
  • cordova-lib@7.0.0
  • plugman@1.5.0
  • cordova-app-hello-world@3.12.0
  • cordova-common@2.0.3
  • cordova-create@1.1.0
  • cordova-fetch@1.1.0

  • 如果您的專案中不存在 package.json,當呼叫 cordova prepare 時,將會自動為您建立。
  • 當新增平台或外掛時,先前的預設行為是不儲存,現在已變更為儲存。現在它會自動將該平台或外掛儲存到您的 config.xmlpackage.json。關於平台和外掛版本詳細資訊也會自動儲存於 config.xmlpackage.json。不再需要使用 --save 旗標來儲存。使用 --nosave 來防止儲存到 config.xmlpackage.json
  • Fetch 現在是抓取平台的預設方法。Fetch 使用您的系統 npm 將模組 npm install 安裝到您的專案中。不再需要使用 --fetch 旗標。使用 --nofetch 旗標回復到 Cordova@7.0 之前的行為 (不使用 npm install 來抓取模組)。
  • 執行 cordova prepare 後,package.jsonconfig.xml 應包含相同的平台和版本。若發生衝突,package.json 的優先順序高於 config.xml。例如,假設 package.json 包含 cordova-android@6.0.0,而 config.xml 包含 cordova-android@4.0.0。執行 cordova prepare 後,config.xmlpackage.json 都將只包含 cordova-android@6.0.0
  • 現在平台和外掛都需要有 package.json 檔案。
  • 我們新增了對自訂平台的支持。這將允許未來的自訂平台和現有平台的修改版本。範例:

      cordova platform add custom-platform-name
    
  • 建立了一個 cordova config 命令,用於 setgetdeleteeditlist 全域 Cordova 選項。例如,您可以使用以下命令 cordova config set <key> <value>autosavefetch 的值設為 truefalse
在以下情況中,您關閉了 autosave 作為預設設定。在 cordova 中,預設情況下 autosave 為 true。範例:```
cordova config set autosave false
```


In the following case, you are turning off `fetch` as the default setting. `fetch` is `true` by default in cordova.  Example:

```
cordova config set fetch false
```

In addition, the `cordova config` command supports the `browserify` setting, which allows the JavaScript of plugins to be loaded at build time compared to run time. For instance, if the `browserify` value is not explicitly passed in by the user, the `cordova config` command will automatically set the `browserify` value saved in `~/.config/configstore/` to be saved `globally`. Users can get and set `browserify`. `browserify` is `false` by deafult in cordova. Example:

```
cordova config get browserify
cordova config set browserify true
```
  • 已停止支援 node 0.x。僅支援 node 4.0 和更高版本。
  • 已停止支援 wp8 (windows phone 8)。
  • cordova-windows:已停止支援 4.0.0 之前的任何版本。
  • cordova-android:已停止支援 5.0.0 之前的任何版本。
  • cordova-ios:已停止支援 4.0.0 之前的任何版本。
  • cordova-osx:已停止支援 4.0.0 之前的任何版本。

升級方式

npm install -g cordova@latest

請回報您在 issues.cordova.io 發現的任何問題!

變更包括

cordova-lib

  • CB-12747:已更新釘選的平台
  • CB-12705:修改 (before|after)_plugin_(uninstall|install) 以始終預期 plugin 欄位的存在
  • CB-12705:將外掛資訊傳遞到專案 *_plugin_install hook
  • CB-11242:已移除不具有 package.json 的平台支援
  • CB-11242:已更新測試和測試夾具
  • CB-11242:已重構出 getPlatformApiFunction
  • CB-11242:已移除已棄用平台版本的 parserhandler 檔案
  • CB-12683:改善外掛沒有 package.json 時的錯誤訊息
  • CB-12674:新增針對 blackberry10ubuntu 的棄用通知
  • CB-11777:在準備之前還原外掛
  • CB-12643:已移除對 wp8 的參考
  • CB-12645:已移除對 firefoxos 的參考
  • CB-12665:已移除不再支援的 engineStrict
  • CB-12612:正在移除舊的 amazon-fireos 程式碼
  • CB-12425:在 cordova prepare 期間,如果不存在 package.json,則自動建立一個
  • CB-12517package.json name 欄位為 config.xml id 欄位,而 package.json displayName 欄位為 config.xml name 欄位
  • CB-12592:已新增 requireNoCache 函式,並取代 delete.require cache 的執行個體
  • CB-12606:修正外掛相依性安裝。現在它會尊重 plugin.xml 中為外掛相依性指定的 spec
  • CB-12016:已從解除安裝中移除 pluginMapper 程式碼
  • CB-12337:解析專案根目錄中的符號連結
  • CB-11346:移除已知平台檢查
  • CB-11977:已移除 node 0.x 的支援
  • CB-12021:已新增對 --fetch 的本機路徑支援,並修正新增相對路徑的測試失敗問題
  • CB-11960:已新增對 package.json 的平台/外掛新增/移除支援
  • CB-12001:已新增對平台/外掛和 spec 還原的支援,以同步 config.xmlpackage.json

cordova-cli

  • CB-12570:預設情況下 cordova-fetch 為 true。使用 --nofetch 旗標使用舊的抓取邏輯抓取平台和外掛。
  • CB-12665:已移除不再支援的 engineStrict
  • CB-11982:已新增 editlscordova config
  • CB-11982:已新增新的 cordova config 命令,該命令可 setsgetsdeletes 全域環境變數。
  • CB-12008:已更新文件以反映新的自動儲存變更,並移除因重新基準而遺漏的變數
  • CB-12008:使自動儲存成為平台和外掛新增/移除的預設設定
  • CB-11977:已移除 node 0.x 的支援

cordova-fetch

  • CB-12665:已移除已棄用的 enginestrict
  • 新增了處理本機路徑目標的支援

cordova-common

  • CB-8978:新增從 root 取得 resource-file 的選項
  • CB-11908:新增 config.xmledit-config 的測試
  • CB-12665:已移除已棄用的 enginestrict

plugman

  • CB-12747:已將 cordova-lib 相依性更新為 7.0.0

cordova-create

  • CB-10681:當從 npm 抓取且未指定版本時,範本將新增 @latest。這將確保不會使用較舊的快取範本版本
  • CB-12666:移除 node 0.x 支援。
  • CB-12517package.json displayname 應等於 config.xml name 欄位,而 package.json name 欄位應等於 config.xml id 欄位。

cordova-app-hello-world

  • CB-12684:已將 package.json 新增到預設的 hello world 應用程式
  • 新增 GitHub pull request 範本

Cordova CLI 7.0.0 的釘選平台版本

  • Cordova Android: ~6.2.2
  • Cordova BlackBerry10: ~3.8.0
  • Cordova Browser: ~4.1.0
  • Cordova iOS: ~4.4.0
  • Cordova OSX: ~4.0.1
  • Cordova Ubuntu: ~4.3.4
  • Cordova Windows: ~5.0.0
  • Cordova WebOS: ~3.7.0