7

win .exe とインストーラー用の electron ビルド ファイルがありますが、アイコンは私のものではありません。私の main.js ファイルには、アイコンをアタッチするためのコードがありますが、createWindow 関数内でのみ動作させることができます。関数の外では、エラー メッセージが表示されます。.exe が実行され、アイコンが表示されますが、そうするとエラーが発生します。インストーラーはまったく機能しません。いくつかのチュートリアルを試してみましたが、この問題を解決できるものはありません。

main.js

const {app, BrowserWindow, Tray} = require('electron')
const path = require('path')
const url = require('url')

let win

function createWindow () {
  const appIcon = new Tray('icon/app.png')
  win = new BrowserWindow({ width: 1920, height: 1080, icon: 'icon/app.ico' })
  console.log(appIcon, win)
  win.loadURL(url.format({
    pathname: path.join(__dirname, 'app/app.html'),
    protocol: 'file:',
    slashes: true
  }))
  win.on('closed', () => {
    win = null
  })
}

app.on('ready', createWindow)
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})
app.on('activate', () => {
  if (win === null) {
    createWindow()
  }
})

パッケージ.json

{
  "name": "myapp",
  "version": "1.0.0",
  "description": "MyApp",
  "private": true,
  "main": "main.js",
  "build": {
    "appID": "myapp",
    "productName": "MyApp",
    "icon": "icon/app.ico"
  },
  "scripts": {
    "start": "electron ." ,
    "package": "",
  },
  "author": "Me",
  "license": "ISC",
  "devDependencies": {
    "electron": "^1.6.1"
  }
}

ここからどうすればいいのかわからない。

4

3 に答える 3

2

以下は私のために働いた。タスクバーにアプリ アイコンを表示するには、main.js でその場でアイコンを更新できます (typescript を使用している場合は main.ts)。

win.setIcon(path.join(__dirname, '/src/assets/logo-small.png'));

言及する価値があるのは__dirname、package.json と同じディレクトリを指すことです

于 2019-04-14T13:33:29.503 に答える