使用electron打包Vue前端項目的詳細(xì)流程
Electron-Forge 打包Vue項目
效果:electronforge可將前端靜態(tài)頁面打包成.exe、.deb和.rpm等,能適配各種平臺
- 示例:Windows環(huán)境下將前端 Vue 項目打包成exe文件
- 打包后的 exe 文件
- 運行 exe 文件
一、項目準(zhǔn)備
本地環(huán)境
# 環(huán)境版本信息 node -v # v20.11.1 npm -v # 10.2.4 # 設(shè)置源 npm config set registry https://registry.npmmirror.com/ # 查看 node 源 npm config get registry
安裝依賴
# 切換到Vue前端項目 cd ruoyi-ui # 安裝Vue所需依賴 npm install # 運行 Vue 項目 npm run dev
報錯
原因:Node版本高了
修改 package.json
修改后的 package.json
"scripts": { "dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve", "build:prod": "vue-cli-service build", "build:stage": "vue-cli-service build --mode staging", "preview": "node build/index.js --preview", "lint": "eslint --ext .js,.vue src" },
二、項目配置
1. 修改項目配置
ruoyi-ui 下的配置修改
1.1 .env.production
# 修改前 VUE_APP_BASE_API = '/prod-api' # 修改后(與后端保持一致) VUE_APP_BASE_API = 'http://localhost:8080'
1.2 vue.config.js
# 修改前:靜態(tài)資源路徑 publicPath: process.env.NODE_ENV === "production" ? "/" : "/", # 修改后 publicPath: './', # 實際接口地址與后端Sprintboot項目保持一致 target: `http://localhost:8080`,
1.3 修改路由配置
進(jìn)入 ruoyi-ui/src/router/index.js
# 修改前:url不帶# mode: 'history' # 修改后:url帶# mode: 'hash'
1.4 全局修改Cookies為localStorage
由于打包成exe或deb這類可執(zhí)行文件后,本地是沒有 Cookies
全局搜索Cookies.get
并替換為localStorage.getItem
全局搜索Cookies.set
并替換為localStorage.setItem
全局搜索Cookies.remove
并替換為localStorage.removeItem
進(jìn)入ruoyi-ui/src/views/login.vue
修改前
localStorage.setItem("username", this.loginForm.username, { expires: 30 }); localStorage.setItem("password", encrypt(this.loginForm.password), { expires: 30 }); localStorage.setItem('rememberMe', this.loginForm.rememberMe, { expires: 30 });
修改后
localStorage.setItem("username", this.loginForm.username); localStorage.setItem("password", encrypt(this.loginForm.password)); localStorage.setItem('rememberMe', this.loginForm.rememberMe);
1.5 退出登錄白頁問題
進(jìn)入 ruoyi-ui/src/layout/components/Navbar.vue
修改前
修改后
async logout() { this.$confirm('確定注銷并退出系統(tǒng)嗎?', '提示', { confirmButtonText: '確定', cancelButtonText: '取消', type: 'warning' }).then(() => { this.$store.dispatch('LogOut').then(() => { this.$router.push('/login') }) }).catch(() => {}); }
三、開始打包
打包 Vue
npm run build:prod
報錯
原因
node版本過高
解決方案進(jìn)入 ruoyi-ui/package.json
修改前
修改后
"scripts": { "dev": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve", "build:prod": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build", "build:stage": "vue-cli-service build --mode staging", "preview": "node build/index.js --preview", "lint": "eslint --ext .js,.vue src" },
以上配置修改后,重新執(zhí)行打包命令
npm run build:prod
打包好后出現(xiàn) ruoyi-ui/dist 文件夾
3.1 下載 electron 骨架項目
第一步:下載把electron
官方例子
git clone https://github.com/electron/electron-quick-start
第二步:配置項目
刪除 index.html
和 package-lock.json
將 Vue 打包后的dist
放入項目 electron-quick-start 根目錄上
入口文件 main.js ,修改打包的文件路徑為我們的index.html
// 原始內(nèi)容 mainWindow.loadFile('index.html') // 修改后的內(nèi)容 mainWindow.loadFile('./dist/index.html')
進(jìn)入 package.json
// 原始內(nèi)容 "devDependencies": { "electron": "^29.2.0" } // 修改后的內(nèi)容 "devDependencies": {}
第三步:安裝依賴
配置npm
如果不配置,為 electron-quick-start 項目下載 electron 超級慢,甚至下載失?。。。?/p>
尋找電腦上的 .npmrc
:默認(rèn)c盤下
Everything是一款在系統(tǒng)中快速搜索文件的軟件
.npmrc 中添加最后兩行
prefix=D:\Environment\nodejs\node_global cache=D:\Environment\nodejs\node_cache registry=https://registry.npmmirror.com/ disturl=https://registry.npmmirror.com/-/binary/node electron_mirror=https://registry.npmmirror.com/-/binary/electron/
下載依賴
npm install --save-dev electron npm install --save-dev @electron-forge/cli npm exec --package=@electron-forge/cli -c "electron-forge import" npm install --save-dev @electron-forge/plugin-fuses
控制臺輸出
# 運行預(yù)覽打包后的exe npm run start # 構(gòu)建分發(fā)包形成單個exe npm run make
Windows下成功打包exe
electron-forge 會檢測當(dāng)前系統(tǒng)是Windows,還是Linux,最終分發(fā)成.exe、.deb或.rpm都是看你當(dāng)前執(zhí)行 npm run make
# 當(dāng)然你可以強(qiáng)制修改平臺,通過添加參數(shù)platform "scripts": { "start": "electron-forge start", "package": "electron-forge package", "make": "electron-forge make --platform=linux" },
But ERROR
Windows 上打包成 .deb不被允許
依據(jù) electronforge 官網(wǎng)解釋
Electron Forge 官網(wǎng) deb 描述
你只能在 Linux 或者 macOS操作系統(tǒng)上打包 deb 文件,因此 Windows 操作系統(tǒng)下無法構(gòu)建.deb的哦!??!
以上就是使用electron打包Vue前端項目的詳細(xì)流程的詳細(xì)內(nèi)容,更多關(guān)于electron打包Vue項目的資料請關(guān)注腳本之家其它相關(guān)文章!
- vue配置electron使用electron-builder進(jìn)行打包的操作方法
- vue3使用Electron打包成exe的方法與打包報錯解決
- 如何使用electron將vue項目打包成.exe文件(保姆級教程)
- 解決electron打包vue-element-admin項目頁面無法跳轉(zhuǎn)的問題小結(jié)
- vue項目使用electron進(jìn)行打包操作的全過程
- 手把手教你使用electron將vue項目打包成exe
- 關(guān)于electron-vue打包后運行白屏的解決方案
- vue項目打包成桌面快捷方式(electron)的方法
- 用electron打包vue項目中的報錯問題及解決
- vue 項目集成 electron 和 electron 打包及環(huán)境配置方法
相關(guān)文章
關(guān)于Element-ui中el-table出現(xiàn)的表格錯位問題解決
使用ElementUI的el-table后,偶然發(fā)現(xiàn)出現(xiàn)行列錯位、對不齊問題,下面這篇文章主要給大家介紹了關(guān)于Element-ui中el-table出現(xiàn)的表格錯位問題解決的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07vue 實現(xiàn)cli3.0中使用proxy進(jìn)行代理轉(zhuǎn)發(fā)
今天小編就為大家分享一篇vue 實現(xiàn)cli3.0中使用proxy進(jìn)行代理轉(zhuǎn)發(fā),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10詳解Vue中的render:?h?=>?h(App)示例代碼
這篇文章主要介紹了Vue中的render:?h?=>?h(App),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09vue 插值 v-once,v-text, v-html詳解
這篇文章主要介紹了vue 插值 v-once,v-text, v-html詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01Vue Promise解決回調(diào)地獄問題實現(xiàn)方法
這篇文章主要介紹了Vue Promise解決回調(diào)地獄問題,總的來說這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來一種解題優(yōu)化的思路2023-01-01