标签: electron-builder

生产过程中如何在Electron React App中路由

我正在使用 Electron 6.10.0 并使用 React.js。

在我的应用程序中,菜单中有一个添加任务选项,它会创建一个新窗口。

在开发过程中一切正常,但在生产过程中这条线会出现问题。

addWindow.loadURL(isDev ? 'http://localhost:3000/add' : `file://${path.join(__dirname, '../build/index.html')}`);

它加载index.html,通过它加载index.js并呈现router.js。这是 Router.js 中的代码。

<HashRouter>
    <Switch>
      <Route exact path="/" component={App} />
      <Route exact path="/add" component={addWindow} />
    </Switch>
  </HashRouter>
Run Code Online (Sandbox Code Playgroud)

Mainwindow 工作正常,因为散列是“/”,但对于添加窗口,散列不会更改,并且它会在 addwindow 中再次加载主窗口内容。

生产过程中如何使用路由/路由器,或者有其他方法吗?

提前致谢。

javascript reactjs electron electron-builder

8
推荐指数
2
解决办法
4801
查看次数

电子构建器和电子重建器有什么区别?

我试图找出用于编译本机模块的electro-builderelectro-rebuild之间的区别。Afaik 有这两个选项来编译我的本机模块依赖项:

电子制造商

“本机应用程序依赖项编译(包括 Yarn 支持)。”

    % npm i
    % npm run electron-builder install-app-deps
Run Code Online (Sandbox Code Playgroud)

并且有 电子重建

这允许您在 Electron 应用程序中使用原生 Node.js 模块,而无需完全匹配 Node.js 的系统版本(通常情况并非如此,有时甚至不可能)。

% npm run electron-rebuild
Run Code Online (Sandbox Code Playgroud)

两者都会产生我的依赖项的工作二进制文件。我知道electron-builder它的用途更多,但如果这也可以通过以下electron-rebuild方式完成,为什么还要存在呢?electron-builder谢谢!

node.js electron electron-builder electron-rebuild

8
推荐指数
1
解决办法
3262
查看次数

管理 Electron 应用程序中的应用程序设置

我很好奇如何管理 Electron 应用程序中的应用程序设置?在管理用户设置方面,我在这里和其他地方找到了一些优秀的资源(例如,在 Electron (Atom Shell) 应用程序中在哪里存储用户设置?),但找不到与管理应用程序设置相关的任何内容。

对我来说,两者之间的区别在于,应用程序设置可能因环境(开发/测试/生产)而异,但对于应用程序的所有用户而言保持不变。它们将包含 API 端点等内容。另一方面,用户设置会根据用户的偏好(如窗口宽度/高度等)而随用户而变化。

到目前为止我做了什么?

我发现了这个优秀的包config,并开始在我的项目中使用它。根据说明,我创建了一个config文件夹和一个默认配置文件(稍后我将创建特定于环境的配置文件)。

在此输入图像描述

只要我正在开发应用程序,它就可以正常工作。default.json应用程序正在从文件夹中正确拾取文件config并正确应用这些设置。

当我打包应用程序(MSI、DMG 等)时,问题就出现了。我正在electron-builder为此目的使用包。

package的问题config在于它在应用程序当前工作目录中查找config文件夹,并且因为它在安装应用程序的文件夹中找不到它,所以它只是抛出错误。我什至尝试手动将此文件夹复制到我的app文件夹中(这是 electro-builder 制作包的地方),但这也没有帮助。理想情况下,我想将应用程序设置捆绑在应用程序的 ASAR 文件中,以便它无法被反编译。

我的问题是:

  • 人们如何管理 Electron 应用程序的应用程序设置?
  • 可以config使用 NPM 包吗?或者是否有专门针对 Electron 应用程序的该包的替代方案?

javascript configuration node.js electron electron-builder

7
推荐指数
1
解决办法
8060
查看次数

如何向电子应用程序添加图标

我有一个用于 win .exe 和安装程序的电子构建文件,但图标不是我的。在我的 main.js 文件中,我有附加图标的代码,但我只能让它在 createWindow 函数内工作。在函数之外,我收到一条错误消息。.exe 将运行并且我得到我的图标,但我这样做时出错;安装程序根本无法工作。我已经尝试过几个教程,但没有一个能解决这个问题。

主文件

const {app, BrowserWindow, Tray} = require('electron')
const path = require('path')
const url = require('url')

let win

function createWindow () {
  const appIcon = new Tray('icon/app.png')
  win = new BrowserWindow({ width: 1920, height: 1080, icon: 'icon/app.ico' })
  console.log(appIcon, win)
  win.loadURL(url.format({
    pathname: path.join(__dirname, 'app/app.html'),
    protocol: 'file:',
    slashes: true
  }))
  win.on('closed', () => {
    win = null
  })
}

app.on('ready', createWindow)
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
}) …
Run Code Online (Sandbox Code Playgroud)

electron electron-builder electron-packager

7
推荐指数
2
解决办法
2万
查看次数

Electron 构建器 - 未以编程方式或使用 env“GH_TOKEN”设置 GitHub 个人访问令牌

我有一个电子应用程序,我想为其设置自动更新程序。我按照这篇博文做了一个小演示,经过一些小改动后效果很好。然后我尝试在我的实际项目中实现它,现在出现错误。

GitHub Personal Access Token is not set, neither programmatically, nor using env "GH_TOKEN"
Run Code Online (Sandbox Code Playgroud)

我已经有了 electro-builder.yml 文件,我什至尝试设置 GT_TOKEN anv 变量,但它仍然抛出相同的错误。

electron electron-builder

7
推荐指数
1
解决办法
1万
查看次数

在 Vue CLI 3 中运行 build:electron 后,如何将静态 config.json 文件中的值读取到 Vue 文件中的 TypeScript?

下午好。

我想知道是否可以将config.json文件添加到 Vue CLI 3 项目中,该文件可以在开发和生产期间在运行时读取。

config.json文件将包含一些字符串的应用程序可以动态地使用变化的内容,如显示给用户和打印机的IP地址的视频文件。

// config.json

{
    "brand": "eat",
    "printerIP": "192.168.0.4"
}
Run Code Online (Sandbox Code Playgroud)

我试图将文件放在 assets 文件夹和 public 文件夹中。我尝试使用 import 和 require 语句将它导入到App.vue脚本 lang="ts"元素中。我正在使用 vue-property-decorator。

// App.vue (<script lang="ts">)

const config = require('../public/config.json');

OR

import config from '../public/config.json';
Run Code Online (Sandbox Code Playgroud)

我已经通过使用 axios 像 API 一样处理它并简单地使用例如config.brand访问变量来访问这些值。

// App.vue (<script lang="ts">)

import axios from 'axios';

@Provide() private brand: string = "";

axios
    .get('.config.json')
    .then(response => {
        this.brand = response.data.brand;
    })

OR

this.brand = …
Run Code Online (Sandbox Code Playgroud)

javascript typescript vue.js electron-builder vue-cli-3

7
推荐指数
1
解决办法
3198
查看次数

如何更改 Electron-Forge 默认端口?

我在他们的网站/文档中找不到有关此内容的参考。我需要将其更改为另一个端口,目前它卡在 3000。

这是我创建电子项目的方法electron-forge

yarn create electron-app my-new-app --template=typescript
Run Code Online (Sandbox Code Playgroud)

每当端口 3000 中有另一个服务时。它会抛出错误:

listen EADDRINUSE :::3000
Error: listen EADDRINUSE :::3000
    at Server.setupListenHandle [as _listen2] (net.js:1360:14)
Run Code Online (Sandbox Code Playgroud)

我的webpack.main.config.js文件:

const path = require('path');
module.exports = {
  entry: './src/index.ts',
  // Put your normal webpack config below here
  module: {
    rules: require('./webpack.rules')
  },
  resolve: {
    extensions: ['.js', '.ts', '.jsx', '.tsx', '.css', '.json']
  },
  devServer: {
    contentBase: path.join(__dirname, 'dist'),
    compress: true,
    port: 9000
  }
};
Run Code Online (Sandbox Code Playgroud)

node.js reactjs electron electron-builder electron-forge

7
推荐指数
2
解决办法
6938
查看次数

找不到模块'fs/promises' Electron JS

早上好,

我在 Vue JS 中创建了一个程序,它与我在 main.js 文件中创建的 API 连接以执行系统命令。

我遇到的问题是,在使用电子编译生产时,出现以下错误:

错误

我使用命令 npm run electron: build

当我使用 npm run electron:serve 工作时没有问题

任何人都知道为什么会出现错误以及如何修复它?谢谢

node.js vue.js electron electron-builder

7
推荐指数
6
解决办法
4229
查看次数

ExtensionLoadWarning:警告在 .... Electron js 和 Vue2 处加载扩展

我正在使用 vue2-electron builder 开发一个项目。但是当我运行这段代码时,它没有显示。

错误是;

(node:10500) ExtensionLoadWarning: Warnings loading extension at C:\Users\Dell\AppData\Roaming\project\extensions\nhdogjmejiglipccpnnnanhblpccpnnnanhbledajbpd:
  Unrecognized manifest key 'browser_action'.
  Unrecognized manifest key 'update_url'.
  Permission 'contextMenus' is unknown or URL pattern is malformed.
  Cannot load extension with file or directory name _metadata. Filenames starting with "_" are reserved for use by the system.    
(Use `electron --trace-warnings ...` to show where the warning was created)
Run Code Online (Sandbox Code Playgroud)

我的background.js是;

'use strict'

import { app, protocol, BrowserWindow } from 'electron'
const path = require('path')
import { createProtocol } from …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js electron-builder

7
推荐指数
0
解决办法
2026
查看次数

电子构建器错误:找不到模块“dmg-license”

我正在寻找一种简单的方法来从 Linux 机器构建适用于 macOS 的电子应用程序。

\n

不幸的是,该electron-builder -m命令不起作用,以下是该命令的完整输出:

\n
electron-builder -m              \n  \xe2\x80\xa2 electron-builder  version=22.14.13 os=5.11.0-49-generic\n  \xe2\x80\xa2 loaded configuration  file=package.json ("build" field)\n  \xe2\x80\xa2 writing effective config  file=dist/builder-effective-config.yaml\n\xe2\xa8\xaf Cannot find module \'dmg-license\'\nRequire stack:\n- /home/myUser/.nvm/versions/node/v16.13.0/lib/node_modules/electron-builder/node_modules/dmg-builder/out/dmgLicense.js\n- /home/myUser/.nvm/versions/node/v16.13.0/lib/node_modules/electron-builder/node_modules/dmg-builder/out/dmg.js\n- /home/myUser/.nvm/versions/node/v16.13.0/lib/node_modules/electron-builder/node_modules/dmg-builder/out/dmgUtil.js\n- /home/myUser/.nvm/versions/node/v16.13.0/lib/node_modules/electron-builder/node_modules/app-builder-lib/out/macPackager.js\n- /home/myUser/.nvm/versions/node/v16.13.0/lib/node_modules/electron-builder/node_modules/app-builder-lib/out/packager.js\n- /home/myUser/.nvm/versions/node/v16.13.0/lib/node_modules/electron-builder/node_modules/app-builder-lib/out/index.js\n- /home/myUser/.nvm/versions/node/v16.13.0/lib/node_modules/electron-builder/out/builder.js\n- /home/myUser/.nvm/versions/node/v16.13.0/lib/node_modules/electron-builder/out/cli/cli.js\n- /home/myUser/.nvm/versions/node/v16.13.0/lib/node_modules/electron-builder/cli.js  failedTask=build stackTrace=Error: Cannot find module \'dmg-license\'\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试安装依赖项,但它只能安装在 macOS 上...

\n

我也尝试过安装不同的版本,包括20.37.*22.11.7@latest( 22.14.13) 和@next

\n

有没有其他方法可以为 macOS 构建应用程序(我使用的程序是出于私人目的,因此如果需要额外的用户步骤来安装也没关系)?

\n

或者有什么方法可以解决这个依赖问题?

\n

javascript macos npm electron electron-builder

7
推荐指数
1
解决办法
4477
查看次数