完整版 [vue 配置electron]

 vue 配置electron,使用make 进行打包

1. 安装依赖 yarn install

2. 在根目录新建文件夹 electron

3. package.json 文件里添加

"name": "my-electron-app",
  "version": "1.0.0",
  "description": "Hello World!",
  "main": "main.js",
  "author": "Jane Doe",
  "license": "MIT",

4. 安装electron    npm install --save-dev electron 

npm install --save-dev electron 

cnpm install --save-dev electron 

5. 在package.json 配置文件中的 添加:

{
  "scripts": {
    "start": "electron ."
  }
}

6.   在electron文件夹中创建三个文件(index.html、main.js、preload.js)

创建index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP -->
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">
    <title>Hello World!</title>
  </head>
  <body>
    <h1>Hello World!</h1>
    We are using Node.js <span id="node-version"></span>,
    Chromium <span id="chrome-version"></span>,
    and Electron <span id="electron-version"></span>.
  </body>
</html>

创建main.js

const { app, BrowserWindow } = require('electron')
const path = require('node:path')
const createWindow = () => {
    const win = new BrowserWindow({
      width: 800,
      height: 600,
    //   将此脚本(preload)附加到渲染器流程
      webPreferences: {
        preload: path.join(__dirname, 'preload.js')
      }
    })
  
    win.loadURL('http://localhost:3000')
    // win.loadFile('./electron/index.html')
    // win.webContents.openDevTools()
  }
  app.whenReady().then(() => {
    createWindow()

    app.on('activate', () => {
        if (BrowserWindow.getAllWindows().length === 0) createWindow()
      })
  })

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

创建preload.js

window.addEventListener('DOMContentLoaded', () => {
  const replaceText = (selector, text) => {
    const element = document.getElementById(selector)
    if (element) element.innerText = text
  }

  for (const dependency of ['chrome', 'node', 'electron']) {
    replaceText(`${dependency}-version`, process.versions[dependency])
  }
})

7. 安装 concurrently

npm  install concurrently

cnpm  install concurrently

安装好配置package.json

"start": "concurrently vite \"electron .\""

8. 安装 nodemon实现热更新

npm i nodemon -D

cnpm i nodemon -D

"start": "concurrently vite \"nodemon --exec electron . --watch ./ --ext .js,.html,.css,.vue\""

9. npm start 运行,测试是否成功

10. 打包

npm install --save-dev @electron-forge/cli
cnpm install --save-dev @electron-forge/cli

npm i electron-squirrel-startup 
cnpm install electron-squirrel-startup --save

npx electron-forge import

安装成功可以在package.json 中看到下面这些

"scripts": {
    "start": "electron-forge start",
    "package": "electron-forge package",
    "make": "electron-forge make"
  },
....
 "devDependencies": {
    "@electron-forge/cli": "^7.4.0",
    "@electron-forge/maker-deb": "^7.4.0",
    "@electron-forge/maker-rpm": "^7.4.0",
    "@electron-forge/maker-squirrel": "^7.4.0",
    "@electron-forge/maker-zip": "^7.4.0",
    "@electron-forge/plugin-auto-unpack-natives": "^7.4.0",
    "@electron-forge/plugin-fuses": "^7.4.0",
    "@electron/fuses": "^1.8.0",
  }

 如果devDependencies里面的这些没有,那咱可以复制手写进去,然后 npm i 就好。

开始分发 

cnpm run package

cnpm run make

npm run make 报错

解决方法:
原因是没有配置 forge.config.js ,在根目录新增forge.config.js【这个文件按理说是自动生成的,但是我没有,不晓得为啥】

const { FusesPlugin } = require('@electron-forge/plugin-fuses')
const { FuseV1Options, FuseVersion } = require('@electron/fuses')

module.exports = {
 packagerConfig: {
   asar: true,
 },
 rebuildConfig: {},
 makers: [
  {
   name: '@electron-forge/maker-squirrel',
   config: {
    certificateFile: './cert.pfx',
    certificatePassword: process.env.CERTIFICATE_PASSWORD
   },
  },
  {
   name: '@electron-forge/maker-zip',
   platforms: ['darwin'],
  },
  {
   name: '@electron-forge/maker-deb',
   config: {},
  },
  {
   name: '@electron-forge/maker-rpm',
   config: {},
  },
 ],
 plugins: [
  {
   name: '@electron-forge/plugin-auto-unpack-natives',
   config: {},
  },
  // Fuses are used to enable/disable various Electron functionality
  // at package time, before code signing the application
  new FusesPlugin({
   version: FuseVersion.V1,
   [FuseV1Options.RunAsNode]: false,
   [FuseV1Options.EnableCookieEncryption]: true,
   [FuseV1Options.EnableNodeOptionsEnvironmentVariable]: false,
   [FuseV1Options.EnableNodeCliInspectArguments]: false,
   [FuseV1Options.EnableEmbeddedAsarIntegrityValidation]: true,
   [FuseV1Options.OnlyLoadAppFromAsar]: true,
  }),
 ],
}

然后再运行 

可先运行 npm run package,

再运行 npm run make,

运行成功会自动生成一个out 文件包,打开exe文件即可。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当需要更新 Vue-Electron 中的 Electron 版本时,我们需要按照以下步骤进行操作。 首先,我们需要确定 Electron 的新版本。我们可以通过查看 Electron 的官方网站(https://www.electronjs.org/)或 GitHub 仓库来获取最新的版本号。 一旦确定了新版本号,我们需要在项目的 package.json 文件中更新 `electron` 的依赖项。找到 `dependencies` 或者 `devDependencies` 部分,并将其对应的依赖项从旧版本更新到新版本。例如,将 `"electron": "^7.0.0"` 更新为 `"electron": "^8.0.0"`。 接下来,运行 `npm install` 命令来安装最新版本的 Electron。这将会自动下载并安装新版本的 Electron。 完成安装后,我们需要确保 Vue-Electron 的一些关键配置也进行了更新。如果在项目中使用了 Vue 的 webpack 模板生成的默认配置,我们需要修改 `build/webpack.base.conf.js` 文件。找到 `externals` 部分,并将 `'electron'` 的值更新为新版本号。例如:`'electron': '@latest'`。 如果项目中使用了 VueCLI 3.x,我们需要在 vue.config.js 文件中进行类似的操作。找到 `configureWebpack` 选项,并将 `externals` 部分的依赖项更新为新版本。 在确保所有必要的更新已经完成后,我们可以重新构建和运行项目,以确保新版本的 Electron 正常工作。可以使用命令 `npm run build` 重新构建项目,并使用 `npm run electron` 或相应的启动命令来启动 Electron。 通过以上步骤,我们可以成功更新 Vue-Electron 中的 Electron 版本,确保项目正常运行并享受最新的 Electron 特性和改进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值