electron-vue打包图标不见了?

electron 11 vue-cli4 打包图标不见了??

在这里插入图片描述

打开 background.js 设置 icon: ${__static}/图标名称.ico,

在这里插入图片描述

托盘的图标也一样 tray = new Tray(path.join(${__static}, “./图标名称.ico”)); 可以打包下班了


我的 background.js ,随便配置的仅供参考

"use strict";

import {
    app,
    protocol,
    BrowserWindow,
    screen,
    Menu,
    Tray,
    ipcMain,
    dialog,
    ipcRenderer,
} from "electron";

import {createProtocol} from "vue-cli-plugin-electron-builder/lib";
// import installExtension, {VUEJS_DEVTOOLS} from "electron-devtools-installer";
import path from "path";

const isDevelopment = process.env.NODE_ENV !== "production";

// Scheme must be registered before the app is ready
protocol.registerSchemesAsPrivileged([
    {scheme: "app", privileges: {secure: true, standard: true}}
]);
let tray = null;

async function createWindow() {
    // Create the browser window.
    let width=screen.getPrimaryDisplay().workAreaSize.width ;
    let height=screen.getPrimaryDisplay().workAreaSize.height ;
    const win = new BrowserWindow({
        // width: 800,
        // height: 600,
        width: width,
        height: height,
        x: 0,
        y: 0,
        // frame: false,
        // transparent: true,
        // fullscreen: true,
        // alwaysOnTop:true,
        // backgroundColor:"#42b983",
        icon: `${__static}/heart.ico`,
        title: "remember",
        webPreferences: {
            // devTools: false,
            // Use pluginOptions.nodeIntegration, leave this alone
            // See nklayman.github.io/vue-cli-plugin-electron-builder/guide/security.html#node-integration for more info
            // nodeIntegration: process.env.ELECTRON_NODE_INTEGRATION
            nodeIntegration: true,
            webSecurity: false
        }
    });

    // win.setIgnoreMouseEvents(true)
    Menu.setApplicationMenu(null);
    if (process.env.WEBPACK_DEV_SERVER_URL) {
        // Load the url of the dev server if in development mode
        await win.loadURL(process.env.WEBPACK_DEV_SERVER_URL);
        if (!process.env.IS_TEST) win.webContents.openDevTools();
    } else {
        createProtocol("app");
        // Load the index.html when not in development
        win.loadURL("app://./index.html");
    }

    // if (!isDevelopment) {
    //     tray = new Tray(path.join(__dirname, './public/heart.ico'))
    // } else {
        tray = new Tray(path.join(`${__static}`, "./heart.ico"));
    // }

    const contextMenu = Menu.buildFromTemplate([
        {
            label: "退出", click: function () {
                win.close()
            }
        },
        {label: "打开",click: function () {
                win.show()
            }},
    ]);
    tray.setToolTip(
        "one day you’ll leave this world behind" +
        "So live a life you will remember"
    );
    tray.setContextMenu(contextMenu);
    tray.on("click", () => {
        win.show();
        win.setSkipTaskbar(false)
    });
    ipcRenderer.send("browser-window-height",height)
}

// Quit when all windows are closed.
app.on("window-all-closed", () => {
    // On macOS it is common for applications and their menu bar
    // to stay active until the user quits explicitly with Cmd + Q
    if (process.platform !== "darwin") {
        app.quit();
    }
});

app.on("activate", () => {
    // On macOS it's common to re-create a window in the app when the
    // dock icon is clicked and there are no other windows open.
    if (BrowserWindow.getAllWindows().length === 0) createWindow();
});

// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on("ready", async () => {
    if (isDevelopment && !process.env.IS_TEST) {
        // Install Vue Devtools
        // try {
        //   await installExtension(VUEJS_DEVTOOLS);
        // } catch (e) {
        //   console.error("Vue Devtools failed to install:", e.toString());
        // }
    }
    createWindow();
});

// Exit cleanly on request from parent process in development mode.
if (isDevelopment) {
    if (process.platform === "win32") {
        process.on("message", data => {
            if (data === "graceful-exit") {
                app.quit();
            }
        });
    } else {
        process.on("SIGTERM", () => {
            app.quit();
        });
    }
}

// 2.定义IPC主进程响应函数
ipcMain.on("open-chart-dialog", function (event) {
    dialog.showOpenDialog(
        {
            properties: ['openFile', 'multiSelections'],
            filters: [
                {name: 'Images', extensions: ['jpg', 'png', 'gif']}
            ]
        }).then(result => {
        // console.log(result.canceled)
        // console.log(result.filePaths)
        if (!result.canceled)
        // 通知渲染进程,将获取到的文件路径传给Vue组件中响应函数
            event.sender.send("open-finished", result);
    }).catch(err => {
        console.log(err)
    })
});

### 回答1: electron-vue 是一个使用 Vue.js 开发跨平台桌面应用的框架,可以使用 electron-builder 工具将其打包成 exe 文件。 以下是将 electron-vue 项目打包成 exe 的基本步骤: 1. 安装 electron-builder 在 electron-vue 项目的根目录下执行以下命令: ``` npm install electron-builder --save-dev ``` 2. 配置打包参数 在项目根目录下创建一个 electron-builder.json 文件,用于配置打包参数。可以参考 electron-builder 的文档进行配置,主要包括应用程序名称、版本号、图标等。 3. 执行打包命令 在项目根目录下执行以下命令进行打包: ``` npm run build:win ``` 该命令会生成一个 dist 目录,其中包含打包后的应用程序和安装程序,可以在 Windows 上运行。 以上就是将 electron-vue 项目打包成 exe 的基本步骤,希望对你有帮助。 ### 回答2: electron-vue 是基于 Vue.js 和 Electron 的开发框架,可以快速构建桌面应用程序。在开发完成后,开发者需要将其打包成 .exe 格式(Windows 可执行文件),以便部署和发布。 以下是将 electron-vue 项目打包成 .exe 文件的步骤: 1. 准备工作 首先要安装 electron-packager 包,这个包可以让我们快速打包 electron 应用程序。可以在终端中输入以下命令进行安装: npm install electron-packager --save-dev 2. 修改 package.json 文件 在 package.json 文件中,需要添加以下代码: "scripts": { "package": "electron-packager ./ --platform=win32 --arch=x64 --icon=./build/icons/icon.ico --out=./dist --ignore=dist --overwrite" } 这个代码段是一个命令,运行它可以将项目打包成指定平台(这里是 win32,也就是 Windows)的可执行文件,以 .exe 格式输出到指定目录(这里是 dist 文件夹)。其中,--icon 表示程序图标,--ignore 是忽略打包的文件夹,--overwrite 表示覆盖已有的输出文件夹。 3. 执行打包命令 在终端中输入以下命令,即可开始打包: npm run package 然后等待一段时间,打包成功之后会在 dist 目录下生成 .exe 文件。 4. 发布 最后将 .exe 文件上传到合适的平台(例如 GitHub Release),这样用户就可以下载并使用了。 注意事项: - 在打包时需要注意修改 .ico 图标文件的路径,确保能正确找到。 - 若需要打包成其他平台的可执行文件,可以修改 --platform 和 --arch 参数。 - 打包时,如果报错了,可以在命令行加上 --verbose 参数,查看具体错误信息。 ### 回答3: electron-vue是一个基于vue.js构建的 electron框架的项目,可以让开发者快速地构建跨操作系统的桌面应用程序,并且electron-vue项目也非常容易打包成exe可执行文件,便于在Windows平台上使用。 打包electron-vue项目成exe的方法: 首先要在命令行中进入项目根目录, 然后运行: npm run build 或 yarn run build 这两个命令将会编译和打包electron-vue项目,生成一个dist目录。 在默认情况下,打包出的exe应用程序是没有图标的,如果需要添加图标,需要在build目录下找到win下的icon.ico文件,并替换成你自己的图标文件。 接下来,需要使用第三方的打包工具,如electron-builder,打包成exe文件,命令如下: npm run dist 或 yarn run dist 执行完这个命令后,就会在dist目录下生成一个installer目录,里面包含着生成的exe文件和其他必要的文件。 理论上,exe应用程序已经可以在Windows平台上使用了。 总结: electron-vue项目打包成exe并不是一件复杂的事情。只需进入项目根目录运行 npm run build 命令,然后使用第三方打包工具electron-builder打包,就可以生成一个可执行的exe文件了,这样就极大地方便了开发者在Windows平台上部署应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值