首页 > 其他分享 >Vue项目打包成exe

Vue项目打包成exe

时间:2022-11-04 11:11:47浏览次数:84  
标签:index exe html start electron Vue mainWindow 打包

Vue项目打包成exe

实现思路:从electron官网上拉取代码,把官网上拉取下来项目中的index.html替换成 自己vue项目打包好的dist文件中的index.html,输入打包exe的命令即可

1.拉取electron官网上的demo,拉下来之后安装依赖,项目跑起来之后,就不用管demo了,开始配置自己的Vue项目

git clone https://github.com/electron/electron-quick-start
npm i

然后进入到electron-quick-start中
npm install electron -g -S
npm run start
'''
	会跳出一个demo窗口就不用去管它最小化即可
'''

2.修改自己项目的vue.config.js,路径必须修改为 ./,不是这个后续打包好的页面可能会出现白屏,加载不出来的情况

module.exports = {   
	publicPath: './',   
} 

3.打包自己的Vue项目,这步应该很熟了,将打包出来的 dist 文件夹复制到之前拉取的electron-quick-start文件夹中

打包命令 npm run build

4.在electron-quick-start项目中,下载打包需要的依赖 electron-packager

npm install electron-packager --save-dev

5.进入electron-quick-start项目,删除项目根目录下的 index.html 文件

6.在electron-quick-start项目中找到入口文件 main.js ,修改打包的文件路径为我们的index.html(替换成我们的文件非常非常的重要,注意行数,一般都在16行多一点)

// main.js 原始内容 
mainWindow.loadFile('index.html') 
// 修改后的内容 
mainWindow.loadFile('./dist/index.html')

7.在electron-quick-start项目中,进入 package.json ,在 scripts 中添加 packager 指令,如下所示:

"scripts": { 
"start": "electron .", 
"packager": "electron-packager ./ App --platform=win32 --arch=x64 --overwrite"
} 

8.运行命令打包,然后项目中会出现一个 App-win32-x64 的文件夹,这个文件就是打包好的桌面应用,文件夹里有一个 App.exe 文件,App.exe就是这个项目的启动文件

打包命令npm run packager

9.打包完以后,项目中会出现 App-win32-x64文件夹,进去之后,双击App.exe就可以访问了

隐藏菜单栏(electron-quick-start中的main.js)

// Modules to control application life and create native browser window
const {app, BrowserWindow,Menu} = require('electron') // 添加Menu
const path = require('path')

function createWindow () {  
    //隐藏菜单  Menu.setApplicationMenu(null)   // 加入这句即可
    // Create the browser window.  
    const mainWindow = new BrowserWindow({    
        width: 800,    
        height: 600,    
        webPreferences: {      
            preload: path.join(__dirname, 'preload.js')    
        }  
    })  
    // and load the index.html of the app.  
    mainWindow.loadFile('index.html')  
    // Open the DevTools.  
    // mainWindow.webContents.openDevTools()}

其他配置(electron-quick-start中的main.js)

const {app, BrowserWindow, Menu, globalShortcut} = require('electron')
const path = require('path')

function createWindow() {
    // Create the browser window.
    Menu.setApplicationMenu(null)
    const mainWindow = new BrowserWindow({
        width: 1100,
        height: 800,
        frame: false, // 创建无边框窗口
        // transparent: true, //通过将 transparent 选项设置为 true, 还可以使无框窗口透明
        webPreferences: {
            preload: path.join(__dirname, 'preload.js')
        }
    })
    // 全屏
    mainWindow.setFullScreen(true);

    // Esc退出全屏
    globalShortcut.register('ESC', () => {
        mainWindow.setFullScreen(false);
    })

    // and load the index.html of the app.
    mainWindow.loadFile('./dist/index.html')

    // Open the DevTools.
    // mainWindow.webContents.openDevTools()
}

标签:index,exe,html,start,electron,Vue,mainWindow,打包
From: https://www.cnblogs.com/chunyouqudongwuyuan/p/16857069.html

相关文章

  • nuget打包静态资源的问题
    nuget打包静态资源的问题前段时间做了个区划包,爬了点数据生成了一个region-tree.json文件,存放了全国一直到街道级的区划数据然后又写了点代码解析处理这个文件当......
  • 如何正确学习vue3.0源码
    为什么要学源码技术是第一生产力学习API的设计目的、思路、取舍学习优秀的代码风格学习组织代码的方式学习实现方法的技巧学习ES67新API、TS高级用法不给自......
  • 上帝视角看Vue源码整体架构+相关源码问答
    前言这段时间利用课余时间夹杂了很多很多事把Vue2源码学习了一遍,但很多都是跟着视频大概过了一遍,也都画了自己的思维导图。但还是对详情的感念模糊不清,故这段时间对源码......
  • 二次封装 Vue-Treeselect 组件
    场景开发中多个地方都需要用到vue-treeselect组件,于是想二次封装成SelectTree组件便于使用。需求1:自定义选项样式插槽option-labelSelectTree组件预留插槽`diy-......
  • Vue脚手架生成一个新项目
    Vue脚手架生成一个新项目 1.输入cmd打开当前目录,并输入指令vuecreate项目名称 2.选择自己配置的历史配置或使用新配置Manuallyselectfeatures(即为新配置......
  • go标准库中的os/exec包
    在工作中,我时不时地会需要在Go中调用外部命令。前段时间我做了一个工具,在钉钉群中添加了一个机器人,@这个机器人可以让它执行一些写好的脚本程序完成指定的任务。机器人倒是......
  • Module Error (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-load
    使用uni-app报ModuleError(from./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js):检查控制台提示的xx.vue检查看......
  • vue组件通信6种方式总结(常问知识点)
    前言在Vue组件库开发过程中,Vue组件之间的通信一直是一个重要的话题,虽然官方推出的Vuex状态管理方案可以很好的解决组件之间的通信问题,但是在组件库内部使用Vuex往往会......
  • 你可能需要的vue相关考点汇总
    组件中写name属性的好处可以标识组件的具体名称方便调试和查找对应属性//源码位置src/core/global-api/extend.js//enablerecursiveself-lookupif(name){......
  • vue3.0新的打包工具vite
    vitevite是基于esbuild预构建的,esbuild是用GO语言编写的,比js编写的打包器预构建快10-100倍,js跟go语言相比太慢了。与webpack相比:vite服务器启动速度比webpack快,由于vite......