Установите значок Electron с помощью электронного конструктора

Я хотел бы установить новый значок в моем приложении 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"
    }
  }

person s-leg3ndz    schedule 13.11.2017    source источник


Ответы (3)


В package.json под ключом win также нужно указать путь к иконке:

"build": {
  "win": {
    "icon": "build/app.ico"
  }
}
person laurent    schedule 13.11.2017
comment
Привет ! Тот же результат :( Я добавил часть своего package.json в свой первый пост. Спасибо за вашу помощь! - person s-leg3ndz; 13.11.2017
comment
@StéphaneRICHIN, он должен быть под ключом сборки - я обновил свой пример - person laurent; 13.11.2017
comment
Ага, я только что видел. После теста тот же результат: Application icon is not set, default Electron icon will be used (я обновил свой первый пост) - person s-leg3ndz; 13.11.2017
comment
@StéphaneRICHIN, путь правильный? Это должно быть относительно package.json - person laurent; 13.11.2017
comment
Да, путь правильный. В режиме разработки у меня есть моя иконка :( - person s-leg3ndz; 13.11.2017
comment
@StéphaneRICHIN, в какой момент значок помещается в папку сборки? Может быть, его нет, когда вы создаете приложение? (поскольку я вижу, что папку сборки можно удалить, например, с помощью private:clean). Вам нужно только поместить значок в папку сборки, если вы используете значки в трее, в противном случае вы можете оставить его снаружи, что может быть проще в управлении. Например, поместите его рядом с package.json и включите в "icon": "app.ico". Примерно так я и делаю здесь и это работает нормально. - person laurent; 13.11.2017
comment
Тоже нет результата :( Мне нужно добавить другую конфигурацию в мой main.js ? - person s-leg3ndz; 13.11.2017
comment
Нет необходимости изменять main.js, если путь к значку в package.json правильный, он должен работать. Даже если значок недействителен, он должен сообщить об этом и отобразить сообщение об ошибке. - person laurent; 13.11.2017

Была аналогичная проблема, я добавил каталоги в свою сборку

    "build":{
    "directories": {
              "buildResources": "resources"
            }
}

и внутри папки каталогов у меня был файл icon.ico

person Logical Ogbonna    schedule 08.08.2020

Мне удалось разместить значок в Windows с помощью следующего скрипта в package.json:

"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\""
person Nicolas Després    schedule 24.11.2017
comment
это для упаковщика электронов, а не для сборщика электронов - person Soley; 25.11.2020