electron打包前端项目

1.npm run build

打包项目文件到disk文件夹

2.安装electron:npm install electron

打开后进到/dist里面 然后把这个项目的地址配置环境变量

配置环境变量:在系统变量的path中添加进去

配置成功后,electron -v看看版本。

3.创建主程序的入口文件main.js和相关配置package.json文件,将以下两个文件放入dist文件夹中

main.js

复制代码
const {app, BrowserWindow} =require('electron');//引入electron
let win;
function createWindow(){
  win = new BrowserWindow({
    // frame: false, /*去掉顶部导航 去掉关闭按钮 最大化最小化按钮*/
    show: false//窗口最大化得加上这个 不然会闪一下
  });//创建一个窗口
  // win.setApplicationMenu(null)
  win.maximize()//窗口最大化
  win.setMenu(null)//去掉工具栏
  win.loadURL(`file://${__dirname}/index.html`);//在窗口内要展示的内容index.html 就是打包生成的index.html,这里我直接在此写上我正式环境的地址'prod.xxxx.com/xxx/xxxx'
  //win.webContents.openDevTools();  //开启调试工具
  win.on('close',() => {
    //回收BrowserWindow对象
    win = null;
  });
  win.on('resize',() => {
    win.reload();
  })
}
app.on('ready',createWindow);
app.on('window-all-closed',() => {
  app.quit();
});
app.on('activate',() => {
  if(win == null){
    createWindow();
  }
});

package.json

复制代码
{
  "name": "demo",
  "productName": "项目名称", //这些名称都可以随意命名,不影响
  "author": "作者",
  "version": "1.0.4",//版本号
  "main": "main.js",//主文件入口
  "description": "项目描述",
  "scripts": {
    "pack": "electron-builder --dir",
    "dist": "electron-builder",
    "postinstall": "electron-builder install-app-deps"
  },
  "build": {
    "electronVersion": "1.8.4",
    "win": {
      "requestedExecutionLevel": "highestAvailable",
      "target": [
        {
          "target": "nsis",
          "arch": [
            "x64"
          ]
        }
      ]
    },
    "appId": "demo",//程序id
    "artifactName": "demo-${version}-${arch}.${ext}",
    "nsis": {
      "artifactName": "demo-${version}-${arch}.${ext}"
    },
    "extraResources": [
      {
        "from": "./static/xxxx/",//需要打包的静态资源
        "to": "app-server",//静态资源存放路径
        "filter": [
          "**/*"//打包静态资源文件夹内的所有文件  如果没有静态资源要打包进去,extraResources 这段代码去掉
        ]
      }
    ],
    "publish": [
      {
        "provider": "generic",
        "url": "http://xxxxx/download/"//自动更新的安装包地址,初步使用publish这段代码不需要
      }
    ]
  },
  "dependencies": {
    "core-js": "^2.4.1",
    "electron-packager": "^12.1.0",//不打包成exe程序可以去掉
    "electron-updater": "^2.22.1",//不打包成exe程序可以去掉
  }
}

4.配置好之后,dist文件里面是这样的

5.此时可以直接运行了(要在dist目录下运行:electron . 看清楚 这里有个点)

复制代码
electron .

6.打包为exe程序,npm install electron-builder --save-dev

安装成功后 执行npm run dist进行打包,由于我们package.json中将打包命令electron-builder,定义为了dist,因此我们只需执行npm run dist即可打包

修改版本号:

打包时报下面这个错误 大概意思就是这个文件下载不下来 超时了,那么我们直接复制粘贴圈画的地址到浏览器下载下来 解压到C:\Users\Administrator\AppData\Local\electron-builder\Cache\nsis

打包成功

在我们原本vue项目打包后的dist文件夹下,又出现一个dist,双击exe文件安装

相关推荐
fruge17 分钟前
前端简历优化:如何突出项目亮点与技术深度(附示例)
前端
华仔啊20 分钟前
Vue3 + Element Plus 动态菜单实现:一套代码完美适配多角色权限系统
前端·vue.js
n***840725 分钟前
Springboot-配置文件中敏感信息的加密:三种加密保护方法比较
android·前端·后端
姜太公钓鲸23334 分钟前
Bootstrap是什么?作用是什么?使用场景是什么?如何使用?
前端·bootstrap·html
Aerelin39 分钟前
爬虫playwright中的等待机制
前端·爬虫·python
慧慧吖@44 分钟前
关于在本地去模拟生产环境检测页面内容注意事项
前端·javascript·vue.js
码农很忙1 小时前
用SpreadJS实现分权限管理:前端技术栈的精准控制实践
前端
黄团团1 小时前
Vue2整合Electron开发桌面级应用以及打包发布(提供Gitee源码)
前端·javascript·vue.js·elementui·electron
勇气要爆发1 小时前
问:LocalStorage、Vuex、Pinia的区别和本质
前端
Aerelin1 小时前
iframe讲解(爬虫playwright的特殊应用)
前端·爬虫·python·html