【发布时间】:2016-10-03 16:07:43
【问题描述】:
使用 electron 1.2.1 和 electron-packager 7.0.3,在为 BrowserWindow 构建图标后没有显示 linux (Ubuntu 14.04 x64),它是 ?图片。如果我不创建 asar 文件,则会显示该图标。如果我在启动应用程序时检查以确保文件存在,它说它存在,我什至可以使用 fs 模块将其复制到 asar 文件之外。所以图像在那里,但在 asar 文件中时它没有被电子使用。
如果我在 asar 文件之外有文件并将路径更改为 BrowserWindow 的图标配置以匹配该文件,它仍然不会拾取图标,因此不是文件是否在 asar 文件内,而是如果应用是从 asar 文件加载的。
我用一个简单的例子:
var electron = require('electron'),
BrowserWindow = electron.BrowserWindow,
Path = require('path'),
fs = require('fs'),
icon = Path.resolve(__dirname, 'resources', 'foo.png');
electron.app.on('ready', function() {
var win = new BrowserWindow({
width : 400,
height : 400,
title : 'Test',
icon : icon
});
win.loadUrl('file://' + Path.resolve(__dirname, 'foo.html'));
win.openDevTools();
//for dev
console.log(fs.existsSync(icon)); //reports true
});
如果我通过以下方式在控制台中检查 existsSync:
require('fs').existsSync(require('path).resolve(__dirname, 'resources', 'foo.png'));
它说文件存在。 foo.png 是一个 PNG 256x256 文件。尝试使用 32x32 和 64x64 PNG 文件,但仍然没有成功。
对出了什么问题有任何想法吗?
【问题讨论】:
-
你是如何使用电子打包机的?
-
发现问题是我需要提供一个
.desktop文件,但不知道它需要去哪里以及它是否应该在 asar 文件中(我认为不是)。我使用grunt-electron所以electron配置来描述每个平台的配置。它所做的只是将对象提供给electron-packager