使用电子生成器设置电子图标

Posted

技术标签:

【中文标题】使用电子生成器设置电子图标【英文标题】:Set Electron favicon with electron-builder 【发布时间】:2018-04-26 01:26:33 【问题描述】:

我想在我的 Electron 应用中设置新的图标,并在构建我的应用时替换默认的 Electron 图标。

我使用electron-builder 包。在文档中,我看到了图标 need to be placed in the build directory. 所以:

当我构建我的应用程序时,我收到了这条消息:

Application icon is not set, default Electron icon will be used.

谁能帮帮我?

我的package.json 的一部分:

  "scripts": 
    "postinstall": "install-app-deps && npmpd",
    "pre-build": "./node_modules/.bin/electron-rebuild",
    "build-bcrypt": "npm rebuild bcrypt --update-binary",
    "develop": "npm run private:compile -- --source-maps true && run-p -r private:watch private:serve",
    "test": "mocha -R spec --compilers js:babel-core/register test/**/*.spec.js",
    "lint": "eslint --no-ignore scripts app test *.js",
    "pack": "run-s private:clean private:compile private:build:all",
    "pack:mac": "run-s private:clean private:compile private:build:mac",
    "pack:win": "run-s private:clean private:compile private:build:win",
    "pack:linux": "run-s private:clean private:compile private:build:linux",
    "private:build:all": "build -mwl",
    "private:build:mac": "build --mac",
    "private:build:win": "build --win",
    "private:build:linux": "build --linux",
    "private:watch": "npm run private:compile -- --source-maps true --watch --skip-initial-build",
    "private:serve": "babel-node scripts/serve.js",
    "private:compile": "babel app/ --copy-files --out-dir build",
    "private:clean": "rimraf build",
    "private:cleandb": "rm -rf ./categories ./presentations ./slides ./users"
  ,
  "build": 
    "win": 
      "icon": "build/icon.ico"
    
  

【问题讨论】:

【参考方案1】:

package.json中,win键下,还需要指定图标路径:

"build": 
  "win": 
    "icon": "build/app.ico"
  

【讨论】:

嗨!同样的结果 :( 我在第一篇文章中添加了我的package.json 的一部分。感谢您的帮助! @StéphaneRICHIN,它应该在“build”键下 - 我已经更新了我的示例 是的,我刚看到。经过测试,结果相同:Application icon is not set, default Electron icon will be used(我已经更新了我的第一篇文章) @StéphaneRICHIN,路径正确吗?它应该是相对于 package.json 是的,路径是正确的。在开发模式下,我有我的图标 :(【参考方案2】:

遇到类似问题,我在构建中添加了目录

    "build":
    "directories": 
              "buildResources": "resources"
            

在目录文件夹中我有我的 icon.ico 文件

【讨论】:

【参考方案3】:

我遇到了同样的问题,因为我也使用build 目录作为我的输出,这是我的配置:

"build": 
   "directories":
      "output": "build"
   ,
   "mac": 
      "icon": "build/logo.icns",
   ,
   "win": 
      "icon": "build/logo.png"
   
,

而不是指定您的目录,例如./logo.png,这会使电子显示default Electron icon is used reason=application icon is not set

【讨论】:

【参考方案4】:

我设法在 package.json 中使用以下脚本在 Windows 上显示了我的图标:

"package-win": "electron-packager . --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/icons/win/icon.ico --prune=true --out=release-builds --version-string.CompanyName=Company --version-string.FileDescription=CE --version-string.ProductName=\"Product\""

【讨论】:

这是给电子打包器的,不是电子生成器

以上是关于使用电子生成器设置电子图标的主要内容,如果未能解决你的问题,请参考以下文章

电子应用 |带有电子生成器的自定义安装程序

使用电子生成器时如何将参数传递给电子?

如何使用电子/电子生成器创建发布通道?

放入文件服务器时,电子打包器和电子生成器错误使用电子 vue 构建

在 Angular 5 中使用电子生成器构建电子应用程序

使用电子生成器构建后,电子应用程序未加载 index.html,甚至没有给出错误