取得Cordova專案編譯失敗訊息

在家裡電腦體驗過無比順暢的VS2015 Cordova專案經驗,準備在公司展開Cordova大冒險,萬萬沒想到,公司機車特殊的網路環境(之前已被SSL中間人憑證搞過多次),原本簡單的自動下載編譯部署執行,變成可歌可泣的天堂路。喵的,我又想唱金包銀惹…

上回提過,VS2015封裝了複雜繁瑣的npm Cordova模組下載、安裝過程,按下編譯或執行鈕,Visual Studio就會默默搞定一堆雜工,使用者眼不見心不煩,當個快樂的小傻瓜尊貴的上流開發者就好。家庭背景特殊的小孩總是比較早熟,網路環境特殊的開發人員也是,無法茶來伸手飯來張口,動手寫程式前得先陪Visual Studio蹲在地上做雜工。

在公司環境,VS2015安裝過程順利,建立Cordova專案也沒什麼問題,但按下編譯鈕,Output視窗出現以下訊息:

1>------ Build started: Project: BlankCordovaApp1, Configuration: Debug Android ------
1>  Your environment has been set up for using Node.js 0.12.3 (x64) and npm.
1>  ------ Ensuring correct global installation of package from source package directory: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\ApacheCordovaTools\packages\vs-tac
1>  ------ Name from source package.json: vs-tac
1>  ------ Version from source package.json: 1.0.0
1>  ------ Package already installed globally at correct version.
1>  ------ Cordova tools 4.3.1 already installed.
1>  ------ Build Settings:
1>  ------ Build Settings:
1>  ------    platformConfigurationBldDir: x:\temp\CordovaLab\BlankCordovaApp1\bld\Android\Debug
1>  ------    platformConfigurationBinDir: x:\temp\CordovaLab\BlankCordovaApp1\bin\Android\Debug
1>  ------    buildCommand: prepare
1>  ------    platform: Android
1>  ------    cordovaPlatform: android
1>  ------    configuration: Debug
1>  ------    cordovaConfiguration: Debug
1>  ------    projectName: BlankCordovaApp1
1>  ------    projectSourceDir: x:\temp\CordovaLab\BlankCordovaApp1
1>  ------    npmInstallDir: C:\Users\jeffrey\AppData\Roaming\npm
1>  ------    language: en-US
1>  ------ Adding platform: android
1>  No version supplied. Retrieving version from config.xml...
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

呃,只知道Build 1 failed,完全沒有失敗原因。原來是因為Visual Studio預設只顯示最少的編譯訊息,而Cordova專案依賴外部編譯器編譯,編譯過程的詳細訊息預設不會顯示。需調整如下圖,將「MSBuild project build output verbosity」由Minimal改為Normal以上等級:

重新執行一次,便可在Output視窗找到錯誤原因:npm http GET httqs:/registry.npmjs.org/cordova-android/3.7.2時發生"Unable to fetch platform android: Error: certifiate not trusted"。

不用懷疑,又是公司網管設備偷換中間人SSL憑證搞的鬼,之前雖然設過npm cafile,知何故不管用。另外,還發現Cordova編譯過程也會從github下載東西,也可能有HTTPS問題。MSDN文件寫得挺詳細,有提到如何設定Proxy解決npm及git連線問題,依著這個線索及同樣原理,試著暫時停用npm及git的SSL驗證排除問題:

npm set strict-ssl false
git config http.sslVerify "false"

呼,終算編譯成功~

歡迎推文分享:
Published 25 July 2015 11:27 AM 由 Jeffrey
Filed under: ,
Views: 3,837



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<July 2015>
SunMonTueWedThuFriSat
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication