Electron + Vue 3.x + Vue Cli 4.x + TypeScript 構(gòu)建桌面應(yīng)用程序

假設(shè)你已有一定的基礎(chǔ),已安裝好 Yarn烂瘫、Node

基礎(chǔ)部分可參考這篇 Electron 5.x + Vue Cli 3.x + Vue 2.x + Vue CLI Plugin Electron Builder 構(gòu)建桌面應(yīng)用程序

  1. Electron 官方推薦 yarn 作為軟件包管理器
  2. 使用 Vue 3.0 需要把 Vue Cli 升級到最新版本(編寫時為Vue Cli v4.5.11)
  3. Electron 11 要求 node 版本:v12.18.3
  4. Vue Cli 4.x 要求 node 版本:推薦 v10 以上
  5. 同一臺電腦中管理多個 Node 版本,可以使用 n ,nvm 或 nvm-windows

Vue Cli

// 全局安裝
yarn global add @vue/cli

// 已安裝 Vue CLI 3.x 以上的摩幔,升級全局的 Vue CLI 包
yarn global upgrade --latest @vue/cli

創(chuàng)建項目

vue create broadcast-console

選擇配置

選擇一個預(yù)設(shè)弹灭。> 指哪行就是選中該選項
Please pick a preset:
  Default ([Vue 2] babel, eslint)
  Default (Vue 3 Preview) ([Vue 3] babel, eslint)
> Manually select features
下一步,選擇項目所需的功能胧奔。* 是已選中
Check the features needed for your project:
 (*) Choose Vue version
 (*) Babel
 (*) TypeScript
 ( ) Progressive Web App (PWA) Support
 (*) Router
 (*) Vuex
>(*) CSS Pre-processors
 (*) Linter / Formatter
 ( ) Unit Testing
 ( ) E2E Testing
下一步,選 vue 3.x
Choose a version of Vue.js that you want to start the project with
  2.x
> 3.x (Preview)
下一步预吆,選擇默認推薦的
Use class-style component syntax? No

Use Babel alongside TypeScript (required for modern mode, auto-detected polyfills, transpiling JSX
)? Yes

Use history mode for router? (Requires proper server setup for index fallback in production) Yes

下一步龙填,選擇Sass/SCSS (with dart-sass)
Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): (Use ar
row keys)
> Sass/SCSS (with dart-sass)
  Sass/SCSS (with node-sass)
  Less
  Stylus
下一步,選擇 ESLint with error prevention only
 Pick a linter / formatter config: (Use arrow keys)
> ESLint with error prevention only
  ESLint + Airbnb config
  ESLint + Standard config
  ESLint + Prettier
  TSLint (deprecated)
下一步拐叉,選擇 Lint on save岩遗,繼續(xù)下一步,步驟省略......
Pick additional lint features: (Press <space> to select, <a> to toggle all, <i> to invert selectio
n)
>(*) Lint on save
 ( ) Lint and fix on commit

下面是全部選擇配置項


Vue CLI v4.5.11
? Please pick a preset: Manually select features
? Check the features needed for your project: Choose Vue version, Babel, TS, Router, Vuex, CSS Pre-processors, Linter
? Choose a version of Vue.js that you want to start the project with 3.x (Preview)
? Use class-style component syntax? No
? Use Babel alongside TypeScript (required for modern mode, auto-detected polyfills, transpiling JSX)? Yes
? Use history mode for router? (Requires proper server setup for index fallback in production) Yes
? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): Sass/SCSS (with dart-sass)
? Pick a linter / formatter config: Basic
? Pick additional lint features: Lint on save
? Where do you prefer placing config for Babel, ESLint, etc.? In dedicated config files
? Save this as a preset for future projects? No
選擇配置.png

等待項目創(chuàng)建完成凤瘦,看到運行項目操作提示宿礁,執(zhí)行后項目已經(jīng)能跑起來(此時是網(wǎng)頁端)

 $ cd broadcast-console
 $ yarn serve
項目結(jié)構(gòu).png

構(gòu)建 Electron 桌面應(yīng)用程序,需要安裝 Vue CLI Plugin Electron Builder

vue add electron-builder
等待安裝蔬芥,然后讓你選擇 Electron 版本梆靖,選擇 ^11.0.0
Choose Electron Version (Use arrow keys)
  ^9.0.0
  ^10.0.0
> ^11.0.0
安裝成功會提示控汉,開發(fā)環(huán)境構(gòu)建完成
......
......
......

?  Running completion hooks...

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

啟動開發(fā)服務(wù)器,應(yīng)用程序就跑起來了

yarn electron:serve

編譯應(yīng)用程序

yarn electron:build
附上項目安裝依賴文件 package.json
{
  "name": "broadcast-console",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "electron:build": "vue-cli-service electron:build",
    "electron:serve": "vue-cli-service electron:serve",
    "postinstall": "electron-builder install-app-deps",
    "postuninstall": "electron-builder install-app-deps"
  },
  "main": "background.js",
  "dependencies": {
    "core-js": "^3.6.5",
    "vue": "^3.0.0",
    "vue-router": "^4.0.0-0",
    "vuex": "^4.0.0-0"
  },
  "devDependencies": {
    "@types/electron-devtools-installer": "^2.2.0",
    "@typescript-eslint/eslint-plugin": "^2.33.0",
    "@typescript-eslint/parser": "^2.33.0",
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-plugin-eslint": "~4.5.0",
    "@vue/cli-plugin-router": "~4.5.0",
    "@vue/cli-plugin-typescript": "~4.5.0",
    "@vue/cli-plugin-vuex": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "@vue/compiler-sfc": "^3.0.0",
    "@vue/eslint-config-typescript": "^5.0.2",
    "electron": "^11.0.0",
    "electron-devtools-installer": "^3.1.0",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^7.0.0-0",
    "sass": "^1.26.5",
    "sass-loader": "^8.0.2",
    "typescript": "~3.9.3",
    "vue-cli-plugin-electron-builder": "~2.0.0-rc.6"
  }
}
package.json.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末返吻,一起剝皮案震驚了整個濱河市暇番,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌思喊,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件次酌,死亡現(xiàn)場離奇詭異恨课,居然都是意外死亡,警方通過查閱死者的電腦和手機岳服,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門剂公,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吊宋,你說我怎么就攤上這事纲辽。” “怎么了璃搜?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵拖吼,是天一觀的道長。 經(jīng)常有香客問我这吻,道長吊档,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任唾糯,我火速辦了婚禮怠硼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘移怯。我一直安慰自己香璃,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布舟误。 她就那樣靜靜地躺著葡秒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪脐帝。 梳的紋絲不亂的頭發(fā)上同云,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機與錄音堵腹,去河邊找鬼炸站。 笑死,一個胖子當(dāng)著我的面吹牛疚顷,可吹牛的內(nèi)容都是我干的旱易。 我是一名探鬼主播禁偎,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼阀坏!你這毒婦竟也來了如暖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤忌堂,失蹤者是張志新(化名)和其女友劉穎盒至,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體士修,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡枷遂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了棋嘲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酒唉。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖沸移,靈堂內(nèi)的尸體忽然破棺而出痪伦,到底是詐尸還是另有隱情,我是刑警寧澤雹锣,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布网沾,位于F島的核電站,受9級特大地震影響笆制,放射性物質(zhì)發(fā)生泄漏绅这。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一在辆、第九天 我趴在偏房一處隱蔽的房頂上張望证薇。 院中可真熱鬧,春花似錦匆篓、人聲如沸浑度。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽箩张。三九已至,卻和暖如春窗市,著一層夾襖步出監(jiān)牢的瞬間先慷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工咨察, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留论熙,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓摄狱,卻偏偏與公主長得像脓诡,于是被迫代替她去往敵國和親无午。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容