Javascript Electron应用程序名称不为';不变

Javascript Electron应用程序名称不为';不变,javascript,node.js,electron,node-modules,Javascript,Node.js,Electron,Node Modules,我正在使用electron packager打包我的应用程序,但没有更改其名称,仍然显示“electron” 它应该在我的package.json中使用productName,但它没有改变 即使我做了一个安装程序,安装的应用程序的名称、快捷方式和过程仍然是Electron 我已经读到,问题可能是electron预构建的,但我没有把它作为我的项目的依赖 你知道怎么了吗 编辑: 阅读更多有关electron packager文档的信息,这里有一个特别适用于windows的选项。但当我使用它们时,我会

我正在使用electron packager打包我的应用程序,但没有更改其名称,仍然显示“electron”

它应该在我的
package.json
中使用
productName
,但它没有改变

即使我做了一个安装程序,安装的应用程序的名称、快捷方式和过程仍然是
Electron

我已经读到,问题可能是
electron预构建的
,但我没有把它作为我的项目的依赖

你知道怎么了吗

编辑:

阅读更多有关
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"
}
}

电子包装机--平台=--arch=[可选标志…]
如果省略appname,则将使用指定的名称 最近的package.json中的“productName”或“name”


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

electron packager会根据版本名检查输出目录中是否存在包。如果您在尝试使用其他产品名称重新打包时没有更改版本名称,electron packager可能会在控制台中告诉您,它正在跳过打包过程,因为已经存在一个包。

在尝试和研究之后,我决定通过编程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);
});

@Paulo Galdo Sandoval的答案对于电子打包机来说是正确的,但是从软件包的版本
9.0.0
开始,它会自动获取这些字段的信息(
version string
现在是
win32metadata
)。查看该软件包的详细信息

是的,我也尝试过,结果相同。另外,如果我没有在控制台上指定应用程序名称,则会抛出一个错误,要求将electron预构建为依赖于开发人员的代码放在何处?@JuliverGalleto这应该是一个脚本,您可以使用node命令行执行,
node file.js
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);
});