使用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 相关文章推荐
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
May 18 Javascript
JS实现简单的Canvas画图实例
Jul 04 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
Sep 22 Javascript
基于jquery实现复选框全选,反选,全不选等功能
Oct 16 Javascript
javascript适合移动端的日期时间拾取器
Nov 10 Javascript
浅析JavaScript Array和string的转换(推荐)
May 20 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
Mar 23 Javascript
vue webpack打包后图片路径错误的完美解决方法
Dec 07 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
Sep 23 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
Feb 13 Javascript
解决vant框架做H5时踩过的坑(下拉刷新、上拉加载等)
Nov 11 Javascript
VUE+Element实现增删改查的示例源码
Nov 23 Vue.js
脚手架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 日期加减的类,很不错
2009/10/10 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
Aster vs KG BO3 第一场2.19
2021/03/10 DOTA
javascript scrollTop正解使用方法
2013/11/14 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
js动态添加onclick事件可传参数与不传参数
2014/07/29 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
2016/07/24 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
2018/05/26 jQuery
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
vue中对象数组去重的实现
2020/02/06 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
django实现用户登陆功能详解
2017/12/11 Python
python实现list由于numpy array的转换
2018/04/04 Python
python 剪切移动文件的实现代码
2018/08/02 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
Python如何脚本过滤文件中的注释
2020/05/27 Python
python中pop()函数的语法与实例
2020/12/01 Python
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
电子商务专业推荐信范文
2013/12/02 职场文书
家长会邀请书
2014/01/25 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
找规律教学反思
2016/02/23 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
React Hook用法示例详解(6个常见hook)
2021/04/28 Javascript
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python