electron 安装,调试,打包的具体使用


Posted in Javascript onNovember 06, 2019

项目推荐

想要快速的了解 electron, 调试 electron, 打包 electron, 推荐项目electron-webpack-quick-start

快速开始

先安装 cross-env,用于设置环境变量。因为在后面安装electron, 需要下载, 默认的源在国内下载很慢,需要通过设置环境变量来切换下载地址

#安装cross-env,用于设置环境变量的
npm install cross-env -g

Clone项目到本地

# Clone repository
git clone https://github.com/electron-userland/electron-webpack-quick-start.git

进入项目目录

cd electron-webpack-quick-start

安装项目依赖

cross-env ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/" npm install

对比 electron 7.0.0,说明下为什么没有设置npm_config_electron_custom_dir 环境变量。该项目用的 electron版本是 5.0.6,所以环境变量只用设置 ELECTRON_MIRROR。可以看下 electron-download文件下的 index.js文件,只有默认 url 里加了 v, 设置 ELECTRON_MIRROR 后, url 里不会带 v

get baseUrl () {
  if (this.version.indexOf('nightly') !== -1) {
   return process.env.NPM_CONFIG_ELECTRON_NIGHTLY_MIRROR ||
    process.env.npm_config_electron_nightly_mirror ||
    process.env.npm_package_config_electron_nightly_mirror ||
    process.env.ELECTRON_NIGHTLY_MIRROR ||
    this.opts.nightly_mirror ||
    'https://github.com/electron/nightlies/releases/download/v'
  }
  return process.env.NPM_CONFIG_ELECTRON_MIRROR ||
   process.env.npm_config_electron_mirror ||
   process.env.npm_package_config_electron_mirror ||
   process.env.ELECTRON_MIRROR ||
   this.opts.mirror ||
   'https://github.com/electron/electron/releases/download/v'
 }

体验调试

输入命令

npm run dev

效果图

electron 安装,调试,打包的具体使用

体验编译

输入命令

npm run compile

效果图

electron 安装,调试,打包的具体使用

体验打包

我想打包成一个免安装的 exe程序,所以我在 package.json 文件里添加了:

"build": {
  "productName": "HelloWord",
  "appId": "scripter.HelloWord",
  "win": {
   "target": ["portable"]
  },
  "portable": {
   "artifactName": "HelloWord.exe"
  }
 }

整个 package.json 内容如下:

{
 "name": "electron-webpack-quick-start",
 "version": "0.0.0",
 "license": "MIT",
 "scripts": {
  "dev": "electron-webpack dev",
  "compile": "electron-webpack",
  "dist": "yarn compile && electron-builder",
  "dist:dir": "yarn dist --dir -c.compression=store -c.mac.identity=null"
 },
 "dependencies": {
  "source-map-support": "^0.5.12"
 },
 "devDependencies": {
  "electron": "5.0.6",
  "electron-builder": "^21.0.11",
  "electron-webpack": "^2.7.4",
  "webpack": "~4.35.3"
 },
 "build": {
  "productName": "HelloWord",
  "appId": "scripter.HelloWord",
  "win": {
   "target": ["portable"]
  },
  "portable": {
   "artifactName": "HelloWord.exe"
  }
 }
}

输入命令

npm run dist

这步第一次运行的时候很慢,因为要下载,第一次运行图:

electron 安装,调试,打包的具体使用

第二次运行,就快多了,不过 building 这里有点慢,第二次运行图:

electron 安装,调试,打包的具体使用

生成的免安装的 exe见下图, 想要给别人用,只需拷这个就行。我运行了下,启动速度有点慢, 花了11秒。

electron 安装,调试,打包的具体使用

程序运行效果图

electron 安装,调试,打包的具体使用

体验完毕,可以开始学习 electron了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery表格行换色的三种实现方法
Jun 27 Javascript
JQuery触发事件例如click
Sep 11 Javascript
浅析JavaScript中的隐式类型转换
Dec 05 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
Dec 30 Javascript
javascript用正则表达式过滤空格的实现代码
Jun 14 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
Nov 07 Javascript
微信小程序 devtool隐藏的秘密
Jan 21 Javascript
JavaScript中的return布尔值的用法和原理解析
Aug 14 Javascript
JavaScript定时器设置、使用与倒计时案例详解
Jul 08 Javascript
在Vue环境下利用worker运行interval计时器的步骤
Aug 01 Javascript
js实现图片上传到服务器和回显
Jan 19 Javascript
详解JVM系列之内存模型
Jun 10 Javascript
weui中的picker使用js进行动态绑定数据问题
Nov 06 #Javascript
在vue中阻止浏览器后退的实例
Nov 06 #Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
Nov 06 #Javascript
vue项目强制清除页面缓存的例子
Nov 06 #Javascript
关于vue路由缓存清除在main.js中的设置
Nov 06 #Javascript
JS实现随机抽取三人
Nov 06 #Javascript
Node对CommonJS的模块规范
Nov 06 #Javascript
You might like
动易数据转成dedecms的php程序
2007/04/07 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
javascript 变量作用域 代码分析
2009/06/26 Javascript
js获取图片长和宽度的代码
2009/11/24 Javascript
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
点击隐藏页面左栏或右栏实现js代码
2013/04/01 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
websocket+node.js实现实时聊天系统问题咨询
2017/05/17 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
2018/11/21 Javascript
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
Python实现句子翻译功能
2017/11/14 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
python线程池threadpool使用篇
2018/04/27 Python
python绘制多个曲线的折线图
2020/03/23 Python
如何在python中写hive脚本
2019/11/08 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
pymysql模块使用简介与示例
2020/11/17 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
Java的五个基础面试题
2016/02/26 面试题
含预算的公司户外活动方案
2014/08/16 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS