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 相关文章推荐
Javascript & DHTML 实例编程(教程)基础知识
Jun 02 Javascript
JS实现div居中示例
Apr 17 Javascript
node.js中的path.resolve方法使用说明
Dec 08 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
Aug 16 Javascript
浅谈js中几种实用的跨域方法原理详解
Dec 02 Javascript
Vue.js实例方法之生命周期详解
Jul 03 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
Dec 04 Javascript
tangram.js库实现js类的方式实例分析
Jan 06 Javascript
前端路由&webpack基础配置详解
Jun 10 Javascript
微信小程序indexOf的替换方法(推荐)
Jan 14 Javascript
vue实现扫码功能
Jan 17 Javascript
微信分享invalid signature签名错误踩过的坑
Apr 11 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
html静态页面调用php文件的方法
2014/11/13 PHP
php 实现301重定向跳转实例代码
2016/07/18 PHP
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
AngularJS入门教程之链接与图片模板详解
2016/08/19 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
2017/01/19 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
解决vue打包后vendor.js文件过大问题
2019/07/03 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
js实现鼠标点击页面弹出自定义文字效果
2019/12/24 Javascript
JavaScript数组类型Array相关的属性与方法详解
2020/09/08 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
使用Kivy将python程序打包为apk文件
2017/07/29 Python
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
django自带调试服务器的使用详解
2019/08/29 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
美国时尚在线:Showpo
2017/09/08 全球购物
美国批发供应商:Kole Imports
2019/04/10 全球购物
请解释在new与override的区别
2012/10/29 面试题
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
应届毕业生求职信范文
2013/12/18 职场文书
大学生关于奋斗的演讲稿
2014/01/09 职场文书
实习班主任自我评价
2015/03/11 职场文书
房屋质量投诉书
2015/07/02 职场文书
五年级数学教学反思
2016/02/16 职场文书
使用Nginx搭载rtmp直播服务器的方法
2021/10/16 Servers