使用 Vue 開發(fā) Electron 桌面應(yīng)用入門

緣起

上文簡單介紹了 Electron藏澳,以及如何搭建環(huán)境來進(jìn)行開發(fā)。現(xiàn)實(shí)開發(fā)中耀找,從頭開始使用 HTML5、JS野芒、CSS 來構(gòu)建應(yīng)用畢竟還是一件苦差事蓄愁。鑒于 Vue 是目前國內(nèi)前端開發(fā)的主流技術(shù)棧之一,本文來趟一下如何使用 Vue 開發(fā) Electron 桌面應(yīng)用這個(gè)坑狞悲,減少一些大家搭建環(huán)境中可能會(huì)碰到的問題。

設(shè)置 npm 國內(nèi)源

以下命令設(shè)置 npm 到國內(nèi)的淘寶源地址摇锋。

$ npm config set registry https://registry.npm.taobao.org

驗(yàn)證一下:

$ npm config get registry
https://registry.npm.taobao.org

如果看到輸出是 https://registry.npm.taobao.org,這表明設(shè)置成功的乱投。

參考: npm配置國內(nèi)源方法

設(shè)置 Electron 國內(nèi)源

Windows

npm config set ELECTRON_MIRROR http://npm.taobao.org/mirrors/electron/

Mac

  • bash
echo "export ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/" >> ~/.bash_profile
. ~/.bash_profile
  • zsh
echo "export ELECTRON_MIRROR=http://npm.taobao.org/mirrors/electron/" >> ~/.zshrc
. ~/.ashrc

安裝 yarn【可選】

本文將使用 yarn 作為 Node.js 的包管理器咽笼。至于 npm 與 yarn 孰優(yōu)孰劣,則仁者見仁戚炫、智者見智剑刑,不便評(píng)說双肤。

官方推薦的安裝 yarn 的命令如下:

$ npm install -g yarn

筆者在 Mac 上是使用 homebrew 安裝的 yarn:

$ brew install yarn

目前的最新版本是 1.22.5。

$  yarn -v
1.22.5

homebrew 的國內(nèi)源設(shè)置請(qǐng)參考 清華大學(xué)Homebrew/Linuxbrew 鏡像使用幫助茅糜。

安裝 Vue CLI

本文將通過 Vue CLI 來安裝 Vue.js七芭,其他的安裝方式可以參考官方的 Vue Installation蔑赘。

$ yarn global add @vue/cli
yarn global v1.22.5
[1/4] ??  Resolving packages...
warning @vue/cli > @vue/cli-shared-utils > @hapi/joi@15.1.1: This version has been deprecated and is no longer supported or maintained
warning @vue/cli > @vue/cli-shared-utils > request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
warning @vue/cli > @vue/cli-shared-utils > @hapi/joi > @hapi/address@2.1.4: This version has been deprecated and is no longer supported or maintained
warning @vue/cli > @vue/cli-shared-utils > request > har-validator@5.1.5: this library is no longer supported
warning @vue/cli > @vue/cli-ui > vue-cli-plugin-apollo > nodemon > chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
warning @vue/cli > @vue/cli-ui > vue-cli-plugin-apollo > nodemon > chokidar > fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
warning @vue/cli > globby > fast-glob > micromatch > snapdragon > source-map-resolve > resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
warning @vue/cli > globby > fast-glob > micromatch > snapdragon > source-map-resolve > urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
[2/4] ??  Fetching packages...
[3/4] ??  Linking dependencies...
[4/4] ??  Building fresh packages...
success Installed "@vue/cli@4.5.4" with binaries:
      - vue
?  Done in 43.85s.

可以看到预明,當(dāng)前 Vue CLI 的最新版本是 4.5.4耙箍。

$  vue --version
@vue/cli 4.5.4

注: Windows 下面推薦使用 npm 安裝撰糠,否則有一定概率 vue 命令無法識(shí)別辩昆。 安裝命令如下:

$  npm install -g @vue/cli

生成 vue 工程

使用 vue create 命令創(chuàng)建工程,選項(xiàng)保持默認(rèn)(使用 vue 2)即可汁针。

$ vue create electron-vue-demo
??  Successfully created project electron-vue-demo.
??  Get started with the following commands:

 $ cd electron-vue-demo
 $ npm run serve

驗(yàn)證 vue 工程

$ cd electron-vue-demo
$ npm run serve
 DONE  Compiled successfully in 2379ms                                                                                                                                 

  App running at:
  - Local:   http://localhost:8080/
  - Network: http://192.168.1.5:8080/

  Note that the development build is not optimized.
  To create a production build, run npm run build.

通過瀏覽器范圍訪 http://localhost:8080/,如果看到下圖施无,說明工程創(chuàng)建成功。

vue-create-ok.png

添加 electron-builder 支持

$ vue add electron-builder
?  Successfully invoked generator for plugin: vue-cli-plugin-electron-builder

Mac 系統(tǒng)下帆精,如果該命令執(zhí)行時(shí)間過長,可以嘗試下面的命令:

$ ELECTRON_MIRROR="https://cdn.npm.taobao.org/dist/electron/" vue add electron-builder

運(yùn)行開發(fā)版

執(zhí)行以下命令卓练,啟動(dòng) dev server。

$ yarn electron:serve
或者
$ npm run electron:serve

運(yùn)行的效果:


electron-builder-demo.png

打包

執(zhí)行以下命令襟企,進(jìn)行打包:

$  yarn electron:build
OR
$  npm run electron:build

如果再 Mac 系統(tǒng)下,首次打包緩慢顽悼,也可以嘗試以下命令:

$ ELECTRON_MIRROR="https://cdn.npm.taobao.org/dist/electron/" yarn electron:build
OR
$ ELECTRON_MIRROR="https://cdn.npm.taobao.org/dist/electron/"  npm run electron:build

Windows 系統(tǒng)下的加速操作(在上面設(shè)置過 electron mirror 的前提下):

  • 到 C:\Users<用戶名>\AppData\Local\electron-builder\Cache 下面,建立 nsis 和 winCodeSign 兩個(gè)目錄蔚龙。
  • nsis目錄下, 將事先下載好的 nsis-3.0.4.1.7z 和 nsis-resources-3.4.1.7z 分別解壓到子目錄 nsis-3.0.4.1 和 nsis-resources-3.4.1 目錄下 木羹。
  • winCodeSign 目錄下,將事先下載好的 winCodeSign-2.6.0.7z 解壓到子目錄 winCodeSign-2.6.0目錄下 坑填。
npm run electron:build

【Mac】打包后的文件如下:


electron-build-package.png

【W(wǎng)indows】 打包后的文件如下:


electron_打包.png

示例工程

示例工程可以從 github 上獲取抛人,地址是 electron-vue-demo

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市苍在,隨后出現(xiàn)的幾起案子绝页,更是在濱河造成了極大的恐慌荠商,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抒寂,死亡現(xiàn)場(chǎng)離奇詭異结啼,居然都是意外死亡掠剑,警方通過查閱死者的電腦和手機(jī)屈芜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門朴译,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人眠寿,你說我怎么就攤上這事《⒐埃” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵宁舰,是天一觀的道長。 經(jīng)常有香客問我蛮艰,道長,這世上最難降的妖魔是什么壤蚜? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任徊哑,我火速辦了婚禮袜刷,結(jié)果婚禮上莺丑,老公的妹妹穿的比我還像新娘。我一直安慰自己窒盐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布蟹漓。 她就那樣靜靜地躺著,像睡著了一般葡粒。 火紅的嫁衣襯著肌膚如雪膜钓。 梳的紋絲不亂的頭發(fā)上卿嘲,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音拾枣,去河邊找鬼。 笑死梅肤,一個(gè)胖子當(dāng)著我的面吹牛司蔬,可吹牛的內(nèi)容都是我干的姨蝴。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼左医,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了浮梢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤偶器,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后屏轰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡霎苗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了松申。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖锰瘸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情避凝,我是刑警寧澤眨补,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布倒脓,位于F島的核電站撑螺,受9級(jí)特大地震影響崎弃,放射性物質(zhì)發(fā)生泄漏甘晤。R本人自食惡果不足惜吊履,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一调鬓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧腾窝,春花似錦缀踪、人聲如沸虹脯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至咒彤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間镶柱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來泰國打工歇拆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人故觅。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像输吏,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子评也,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348