使用electron将vue-cli项目打包成exe的方法


Posted in Javascript onSeptember 29, 2018

如果你已经做好了一个vue的项目,并且想要将他打包成exe,那么请继续阅读。

首先你可以下载一个demo了解一下。

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

这个demo主要就是main.js和package.json

打开main.js

const {app, BrowserWindow} = require('electron')
let mainWindow
function createWindow () {
 // Create the browser window.
 mainWindow = new BrowserWindow({width: 800, height: 600})//创建一个浏览器窗口,可配置宽高
 // and load the index.html of the app.
 mainWindow.loadFile('index.html')//加载html
 // Open the DevTools.
 // mainWindow.webContents.openDevTools()//打开调试窗口
 mainWindow.on('closed', function () {
 mainWindow = null
 })
}

app.on('ready', createWindow)
app.on('window-all-closed', function () {
 if (process.platform !== 'darwin') {
 app.quit()
 }
})
app.on('activate', function () {
 if (mainWindow === null) {
 createWindow()
 }
})

package.json

{
 "name": "electron-quick-start",
 "version": "1.0.0",
 "description": "A minimal Electron application",
 "main": "main.js",//入口,根据自己的项目修改
 "scripts": {
 "start": "electron ."
 },
 "repository": "https://github.com/electron/electron-quick-start",
 "keywords": [
 "Electron",
 "quick",
 "start",
 "tutorial",
 "demo"
 ],
 "author": "GitHub",
 "license": "CC0-1.0",
 "devDependencies": {
 "electron": "^2.0.0"
 }
}

运行 npm start

显示窗口

使用electron将vue-cli项目打包成exe的方法

ok,现在我们在自己的项目上安装两个依赖

npm install electron --save-dev
npm install electron-packager --save-dev

electron有两种打包方式,electron-packager和electron-builder,官方推荐electron-builder,但是较为麻烦,初学者建议先用

electron-packager

首先将例子中的main.js复制一份并重命名为electron

修改为 mainWindow.loadFile(‘./dist/index.html')

然后对你的项目进行打包,npm run build

打包完成后,将electron.js 在复制一份到dist目录下,修改mainWindow.loadFile(‘index.html')

将项目根目录下的package.json修改

如同以下

"main": "build/electron.js",//入口
 "scripts": {
 "dev": "node build/dev-server.js",
 "start": "npm run dev",
 "build": "node build/build.js",
 "test": "electron .",
 "electron_build": "electron-packager ./dist exeName --platform=win32 --arch=x64 --icon=./assets/img/favicon.ico --overwrite"
 },

复制package.json到dist目录下,修改

"main": "electron.js",1

运行npm test 打开项目

运行npm run electron_build 进行打包,exe图标必须有,格式是ico,exeName是exe的名称,根据自己需要配置

为什么要在dist目录加上electron.js和package.json呢?这是因为内部机制会找到index.html下package.json进行打包

以上这篇使用electron将vue-cli项目打包成exe的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Mootools 1.2教程 函数
Sep 15 Javascript
JavaScript 变量作用域分析
Jul 04 Javascript
正则表达式搭配js轻松处理json文本方便而老古
Feb 17 Javascript
js实现当前输入框高亮显示的方法
Aug 19 Javascript
JS实现图片高亮展示效果实例
Nov 24 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
Mar 28 Javascript
非常漂亮的相册集 使用jquery制作相册集
Apr 28 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
Jan 13 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
Mar 02 Javascript
js中字符型和数值型数字的互相转化方法(必看)
Apr 25 Javascript
BootStrap表单控件之文本域textarea
May 23 Javascript
使用layer弹窗和layui表单实现新增功能
Aug 09 Javascript
脚手架vue-cli工程webpack的作用和特点
Sep 29 #Javascript
基于vue和react的spa进行按需加载的实现方法
Sep 29 #Javascript
使用Vuex解决Vue中的身份验证问题
Sep 28 #Javascript
js限制输入框只能输入数字(onkeyup触发)
Sep 28 #Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
Sep 28 #Javascript
js实现点击展开隐藏效果(实例代码)
Sep 28 #Javascript
javascript中toFixed()四舍五入使用方法详解
Sep 28 #Javascript
You might like
php 获取xml接口数据的处理方法
2018/05/31 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
javascript定义变量时加var与不加var的区别
2014/12/22 Javascript
jquery实现勾选复选框触发事件给input赋值
2015/02/01 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
JavaScript 数组的进化与性能分析
2017/09/18 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
动态内存分配导致影响Javascript性能的问题
2018/12/18 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
Python Pywavelet 小波阈值实例
2019/01/09 Python
Django框架模板的使用方法示例
2019/05/25 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
Python统计文本词汇出现次数的实例代码
2020/02/27 Python
Python列表元素删除和remove()方法详解
2021/01/04 Python
html5中的一些标签学习(心得)
2016/10/18 HTML / CSS
澳大利亚体育和露营装备在线/实体零售商:Find Sports
2020/06/03 全球购物
程序员机试试题汇总
2012/03/07 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
shell程序如何生命变量?shell变量是弱变量吗?
2014/11/10 面试题
团员学习总结的自我评价范文
2013/10/14 职场文书
火车的故事教学反思
2014/02/11 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
不同意离婚上诉状
2015/05/23 职场文书
导游词之青城山景区
2019/09/27 职场文书
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python