Electron 应用名称不变
Electron app name doesn't change
我正在使用 electron-packager 打包我的应用程序,但没有更改其名称,并且仍然显示 "Electron"。
它应该使用我的 package.json
中的 productName
但它没有改变。
即使我制作了安装程序,安装的应用程序名称、快捷方式和进程仍然是 Electron
我读到问题可能出在 electron-prebuilt
但我没有将它作为我项目的依赖项。
知道哪里出了问题吗?
编辑:
阅读更多关于 electron-packager
的文档,有一个选项特别适用于 windows。但是当我使用它们时会抛出一个错误:
Fatal error: Unable to commit changes
undefined
我第一次使用它们是 "working" 很好地包装了我的应用程序,但仍然显示错误的应用程序名称
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"
}
}
electron-packager <sourcedir> <appname> --platform=<platform> --arch=<arch> [optional flags...]
If appname is omitted, this will use the name specified by
"productName" or "name" in the nearest package.json.
你试过在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 对 electron-packager
的回答是正确的,但是从包的版本 9.0.0
开始,它会自动获取这些字段的信息(version-string
现在是 win32metadata
).查看该包的 release notes
我正在使用 electron-packager 打包我的应用程序,但没有更改其名称,并且仍然显示 "Electron"。
它应该使用我的 package.json
中的 productName
但它没有改变。
即使我制作了安装程序,安装的应用程序名称、快捷方式和进程仍然是 Electron
我读到问题可能出在 electron-prebuilt
但我没有将它作为我项目的依赖项。
知道哪里出了问题吗?
编辑:
阅读更多关于 electron-packager
的文档,有一个选项特别适用于 windows。但是当我使用它们时会抛出一个错误:
Fatal error: Unable to commit changes
undefined
我第一次使用它们是 "working" 很好地包装了我的应用程序,但仍然显示错误的应用程序名称
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"
}
}
electron-packager <sourcedir> <appname> --platform=<platform> --arch=<arch> [optional flags...]
If appname is omitted, this will use the name specified by "productName" or "name" in the nearest package.json.
你试过在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 对 electron-packager
的回答是正确的,但是从包的版本 9.0.0
开始,它会自动获取这些字段的信息(version-string
现在是 win32metadata
).查看该包的 release notes