判断是否开发环境

安装 electron-is-dev npm install electron-is-dev

  1. // main.js
  2. const isDev = require('electron-is-dev')

或者

  1. // electron-is-dev 的源码
  2. const electron = require('electron');
  3. const app = electron.app || electron.remote.app;
  4. const isEnvSet = 'ELECTRON_IS_DEV' in process.env;
  5. const getFromEnv = parseInt(process.env.ELECTRON_IS_DEV, 10) === 1;
  6. const isDev = isEnvSet ? getFromEnv : !app.isPackaged;

集成 vue-cli 开发

开发时主进程加载 http://localhost:8080/

打包时则加载 dist 文件夹下的 index.html

  1. if (isDev) {
  2. mainWindow.loadURL('http://localhost:8080')
  3. mainWindow.webContents.openDevTools()
  4. } else {
  5. mainWindow.loadURL(`file://${__dirname}/dist/index.html`)
  6. }

打包

electron-builder 开箱即用,但是安装包无路径选择等配置

Not allowed to load local resource

electron 有个 issue 有各种情况的解决方案。

但是注意 electron-builder 默认打包到 dist 文件夹下。打包后,也会报错 Not allowed to load local resource。这个是由于路径引用错误导致的。

解决方案是将 electron-builder 的路径修改为其他路径

  1. // package.json
  2. "build": {
  3. "directories": {
  4. "output": "release"
  5. }
  6. }

渲染进程找不到 fs 及 path 模块

修改 webpack 的 target

  1. {
  2. target: 'electron-renderer'
  3. }

mac版无法粘贴复制

  1. // main.js
  2. if (process.platform === 'darwin') {
  3. const template = [
  4. {
  5. label: "Application",
  6. submenu: [ { label: "退出", role: 'quit'} ]
  7. },
  8. {
  9. label: 'Edit',
  10. submenu: [
  11. { label: '撤销', role: 'undo' },
  12. { label: '恢复', role: 'redo' },
  13. { type: 'separator' },
  14. { label: '剪切', role: 'cut' },
  15. { label: '复制', role: 'copy' },
  16. { label: '粘贴', role: 'paste' },
  17. { label: '删除', role: 'delete' },
  18. { label: '全选', role: 'selectall' }
  19. ]
  20. }
  21. ]
  22. Menu.setApplicationMenu(Menu.buildFromTemplate(template))
  23. }

electron 开发记录的更多相关文章

  1. Electron开发跨平台桌面程序入门教程

    最近一直在学习 Electron 开发桌面应用程序,在尝试了 java swing 和 FXjava 后,感叹还是 Electron 开发桌面应用上手最快.我会在这一篇文章中实现一个HelloWord ...

  2. CozyRSS开发记录22-界面退化

    CozyRSS开发记录22-界面退化 1.问题1-HtmlTextBlock 找的这个HtmlTextBlock有很严重的bug,有时候显示不完全,有时候直接就崩了.然后看了下代码,完全是学生仔水平写 ...

  3. CozyRSS开发记录21-默认RSS源列表

    CozyRSS开发记录21-默认RSS源列表 1.默认列表 在第一次使用CozyRSS的情况下,我们让它内置五个RSS源吧: 2.响应RSS源的更新 先不处理RSS源列表项的点击,响应下下拉菜单里的更 ...

  4. CozyRSS开发记录20-CanResizeWithGrip

    CozyRSS开发记录20-CanResizeWithGrip 1.窗口样式 首先,WindowStyle有四种: 然后,对于窗口缩放的ResizeMode,也有四种,CanResize和CanRes ...

  5. CozyRSS开发记录19-窗口标题栏交互

    CozyRSS开发记录19-窗口标题栏交互 1.谈谈对mvvm解耦的看法 在使用mvvm时,如何操作窗口,这是一个问题.这个问题的关键点是:mvvm是把view和viewmodel解耦了的,很多写法一 ...

  6. CozyRSS开发记录18-番外之Atom1.0的支持

    CozyRSS开发记录18-番外之Atom1.0的支持 1.对CozyRSS.Syndication批判一番 由于我工作的主要开发语言是c++,所以会看到我的c#代码写得非常朴素,很多语法糖都没有用上 ...

  7. CozyRSS开发记录17-Html2Xaml

    CozyRSS开发记录17-Html2Xaml 1.RssContentView还需要优化 上回做了RssContentView的显示,但是对于rss返回的描述(摘要),连换行的没有,更别说里面还有h ...

  8. CozyRSS开发记录16-RssContentView显示

    CozyRSS开发记录16-RssContentView显示 1.RssContentView的布局和绑定 继续参照原型图来写xaml: 然后在RSSContentFrameViewModel里提供绑 ...

  9. CozyRSS开发记录15-获取和显示RSS内容

    CozyRSS开发记录15-获取和显示RSS内容 1.内容列表 我们先给RSSContentFrame增加一个ViewModel,里面和RSS源列表一样,提供一个ObservableCollectio ...

随机推荐

  1. linux 环境变量恢复默认值

    export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin 在linux命令下如何访问一个ur ...

  2. 【机器学习】主题模型(二):pLSA和LDA

      -----pLSA概率潜在语义分析.LDA潜在狄瑞雷克模型 一.pLSA(概率潜在语义分析) pLSA:    -------有过拟合问题,就是求D, Z, W pLSA由LSA发展过来,而早期L ...

  3. 解决spring mybatis 整合后mapper接口注入失败

    spring整合mybatis,在dao层我们只写一个接口,配置相应的*mapper.xml文件, 报如下错误: org.springframework.beans.factory.Unsatisfi ...

  4. Sharepoint foundation2013独立安装教程

    Sharepoint foundation2013安装教程 一,什么是sharepoint foundation2013 大家都知道Sharepoint是一个非常强大的企业级开发平台,它包含各种功能比 ...

  5. SqlServer2012-创建表、删除表 增加字段 删除字段操作

    新建表:create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] nVarChar(50) default \'默认值\' nu ...

  6. .net core webapi +ddd(领域驱动)+nlog配置+swagger配置 学习笔记(2)

    DDD领域驱动模型设计 什么是DDD 软件开发不是一蹴而就的事情,我们不可能在不了解产品(或行业领域)的前提下进行软件开发,在开发前,通常需要进行大量的业务知识梳理,而后到达软件设计的层面,最后才是开 ...

  7. CEPH安装教程(下)

    创建 CEPH 文件系统 创建存储池 # ceph osd pool create cephfs_data 64 # ceph osd pool create cephfs_metadata 64 创 ...

  8. 基于XML的AOP配置

    创建spring的配置文件并导入约束 此处要导入aop的约束 <?xml version="1.0" encoding="UTF-8"?> < ...

  9. Highest Price in Supply Chain (25)(DFS)(PAT甲级)

    #include<bits/stdc++.h>using namespace std;int fa;int degree[100007];vector<int>v[100007 ...

  10. KONG -- 图形化管理(Kong Dashboard)

    前面安装的 KONG 的版本是社区版的 1.0.2,官方的 KONG Manager 好像只有企业版才提供.在 github 上找了一个开源的图形化管理应用 -- Kong Dashboard (ht ...