将Vue项目打包为Windows应用(.exe)

将Vue项目打包为Windows应用(.exe)

新增:解决国内用户下载electron速度太慢的问题

调整:由于electron版本升级,删除原文中对electron版本限制在2.0的命令行语句

背景

朋友是做商品零售,每月都需要将销售数据汇总至年度销售表格中,在这个过程中存在很多重复性的工作,无奈中。在一次聊天中,我了解到他的需求,就用Vue做了一个页面,可以实现 Excel 转成 JSON 进行操作,最后再将 JSON 转成 Excel ,虽然后来了解到用 Python应该会更高效,待日后来研究!

不过咱好歹有个图形界面,用户体验好!(自我安慰一波~)

接下来问题便来了,朋友完全不懂编程,每次都准备开发环境也挺麻烦,便想着能不能做成可执行文件.exe,直接双击安装,生成快捷方式,直接就能用,人性化点赞!

1. Vue项目打包为桌面应用

在网上看了下,常用的解决方案有Electron和 nw.js 等,广大群众都采用的 Electron ,鄙人就跟个风吧~

在学习的过程中,发现关于Electron,常见的有两种打包方法:

第一种:将自己的vue项目打包,放到官方的 demo 文件中,改变打包路径

第二种:在自己的vue的项目中引入插件,然后打包

经过一番尝试,我决定采用第一种,原因是:特!别!简!单!

下面详细介绍下第一种方法:

第一步:把electron的官方例子扒下来,下面简称A,留着待用:

git clone https://github.com/electron/electron-quick-start

第二步:进入我们自己的项目(下面简称B),修改公共路径为相对路径(很多同学都是这步出了问题,导致 npm run build 后出现白屏情况):

如果你是vue-cli3构建的项目:

执行下列指令,打开vue-cli图形配置界面,选择配置,修改公共路径为 ./ , 保存即可:


vue ui



或者你可以点击上图中右上角的打开vue配置, 或者在项目的根目录中创建 vue.config.js, 设置以下内容:

module.exports = {   

lintOnSave: undefined,   

publicPath: './',   

outputDir: undefined,   

assetsDir: undefined,   

runtimeCompiler: undefined,   

productionSourceMap: undefined,   

parallel: undefined,   

css: undefined

}

如果你是vue-cli2或者 webpack 创建的项

进入config文件夹下的 index.js ,将其中的 assetsPublicPath 修改为相对路径 ./ ,保存即可:



第三步:打包你的项目,我相信这步你已经轻车熟路了~,将打包出来的 dist 文件夹复制到之前下载的A文件夹中

npm run build

第四步:进入刚才下载的A项目,删除项目根目录下的 index.html 文件。

第五步:在A项目中找到入口文件 main.js ,修改打包的文件路径为我们的index.html:

// main.js原始内容

mainWindow.loadFile('index.html')

//修改后的内容

mainWindow.loadFile('./dist/index.html')

第六步:在A项目中检查 package.json 的命令,正常情况下,运行下列指令即可进行打包效果预览:

//国内网络下载electron可能很慢,建议设置

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

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


npm install

npm run start

打包成功以后就会出来一个桌面应用,如果一切正常的话你已经可以看到自己的项目了,如果出现白屏的情况,请返回查看第二步~

第七步:在A项目中,下载打包需要的依赖 electron-packager

npm install electron-packager --save-dev

第八步:在A项目中,进入 package.json ,在 scripts 中添加 packager 指令,如下所示:

"scripts": {

"start": "electron .",

"packager": "electron-packager ./ App --platform=win32 --arch=x64 --overwrite"//此处为添加命令

}

如果你想修改最后打包出来的exe文件图标,类似于favicon,或者EXE的名字,可以设置 packager 的指令内容为,icon的路径自己调整下哦,更多配置内容请查阅文档哈:

"packager": "electron-packager ./ YOUR_APP_NAME --platform=win32 --arch=x64 --icon=./dist/favicon.ico --overwrite"

第九步:运行命令打包,然后项目中会出现一个App-win32-x64的文件夹,这个文件就是打包好的桌面应用,文件夹里有一个 App.exe 文件,App.exe就是这个项目的启动文件:

npm run packager

大功告成!什么?为什么打包好的不是一个EXE文件,而是一个文件夹?

我只能说太天真!下面我们继续封装EXE安装包

将桌面应用文件夹封装成EXE安装包

有很多方法可以达到我们的目的,我在这里选择Inno Setup作为封装工具,整个过程也非常开心愉快~

下面这篇文章写的比较全面,是我想要的内容,哈哈,亲测有效~

开源Inno Setup官网下载、安装、打包教程(官网安装向导中文语言包)www.cnblogs.com



©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容