Electron 应用程序名称不变

问题描述 投票:0回答:5

我正在使用电子打包器打包我的应用程序,但没有更改其名称,并且仍然显示“Electron”。

它应该使用我的

productName
中的
package.json
,但它没有改变。

即使我制作了安装程序,安装的应用程序名称、快捷方式和进程仍然是

Electron

我读过,也许问题是

electron-prebuilt
,但我没有将它作为我的项目的依赖项。

知道出了什么问题吗?

编辑:

阅读更多关于

electron-packager
的文档,有一个特别针对 Windows 的选项。但是当我使用它们时会抛出一个错误:

Fatal error: Unable to commit changes
undefined

我第一次使用它们是“工作”良好的包装我的应用程序,但仍然显示错误的应用程序名称

electron-packager ./ --platform=win32 --arch=ia32 --overwrite=true --appname="TierraDesktop" --version-string.ProductName="TierraDesktop" --version-string=InternalName="TierraDesktop" --version-string.CompanyName="Cosmica" --version-string.FileDescription="Sistema de gestion comercial" --version-string.OriginalFilename="TierraDesktop"

之前使用

--version-string.ProductName
但现在即使使用它仍然会抛出该错误。

在这里,我将把我的

packager.json
留给你,这是我项目的根目录

{
"name": "TierraDesktop",
"productName": "TierraDesktop",
"version": "2.0.5",
"description": "Aplicacion de escritorio tierra de colores",
"main": "main.js",
"scripts": {
    "start": "electron main.js"
},
"repository": {
    "type": "git",
    "url": "git+https://github.com/xxxx/xxxxx.git"
},
"author": "xxxxx",
"devDependencies": {
    "debug-menu": "^0.4.0",
    "electron-winstaller": "^2.3.3"
},
"dependencies": {
    "electron-json-storage": "^2.0.0"
}
}

javascript node.js electron node-modules
5个回答
6
投票

好吧,经过尝试和研究,我决定通过编程 API 打包我的应用程序

通过这个脚本我可以实现我想要的一切。希望这可以帮助遇到同样问题的人。

var packager = require('electron-packager');
var options = {
    'arch': 'ia32',
    'platform': 'win32',
    'dir': './',
    'app-copyright': 'Paulo Galdo',
    'app-version': '2.0.5',
    'asar': true,
    'icon': './app.ico',
    'name': 'TierraDesktop',
    'ignore': ['./releases', './.git'],
    'out': './releases',
    'overwrite': true,
    'prune': true,
    'version': '1.3.2',
    'version-string':{
      'CompanyName': 'Paulo Galdo',
      'FileDescription': 'Tierra de colores', /*This is what display windows on task manager, shortcut and process*/
      'OriginalFilename': 'TierraDesktop',
      'ProductName': 'Tierra de colores',
      'InternalName': 'TierraDesktop'
    }
};
packager(options, function done_callback(err, appPaths) {
    console.log(err);
    console.log(appPaths);
});

3
投票
electron-packager <sourcedir> <appname> --platform=<platform> --arch=<arch> [optional flags...]

如果省略 appname,则将使用由 最近的 package.json 中的“productName”或“name”。

您是否尝试过在 package.json 中设置“name”属性?


1
投票

@Paulo Galdo Sandoval 的答案对于

electron-packager
是正确的,但从包的
9.0.0
版本开始,它会自动获取这些字段的信息(
version-string
现在是
win32metadata
)。请参阅该软件包的发行说明


0
投票

Electron-packager 根据版本名称检查现有包的输出目录。如果您在尝试使用不同的产品名称重新打包时没有更改版本名称,则 Electron-packager 可能会在控制台中告诉您,它正在跳过打包过程,因为包已经存在。


0
投票

当您构建要分发的 Electron 应用程序时,您可以在 Electron Packager 中更改应用程序名称。为此,您可以在打包过程中指定 --appname 选项。

电子打包器。 YourAppName --platform=win32

通过在打包过程中指定 --appname 选项,您可以更改 Electron 应用程序在分发包和其他系统级视图中显示的名称。

© www.soinside.com 2019 - 2024. All rights reserved.