【问题标题】:Electron app name doesn't change电子应用程序名称不会改变
【发布时间】:2016-12-10 01:14:32
【问题描述】:

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

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

即使我做了一个安装程序,安装的应用名称、快捷方式和进程仍然是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


    【解决方案1】:

    @Paulo Galdo Sandoval 对electron-packager 的回答是正确的,但从包的9.0.0 版本开始,它会自动获取这些字段的信息(version-string 现在是win32metadata)。请参阅 release notes 获取该软件包

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • @JuliverGalleto 这应该是您使用节点命令行执行的脚本,node file.js
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:
        electron-packager <sourcedir> <appname> --platform=<platform> --arch=<arch> [optional flags...]
        

        如果 appname 被省略,这将使用指定的名称 最近的 package.json 中的“productName”或“name”。

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

        【讨论】:

        • 是的,我也试过了,结果一样。此外,如果我没有在控制台上指定应用程序名称,则会引发错误,要求将电子预构建为开​​发依赖项
        猜你喜欢
        • 2016-12-31
        • 2022-06-29
        • 1970-01-01
        • 1970-01-01
        • 2016-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多