vue项目使用electron进行打包操作的全过程

 更新时间:2023年03月17日 11:10:14   作者:春啊春  
我们都知道Electron项目分为了主进程和渲染进程,主进程其实就是我们的Electron,渲染进程就相当于我们的Vue项目,下面这篇文章主要给大家介绍了关于vue项目使用electron进行打包操作的全过程,需要的朋友可以参考下

一、设置国内镜像

npm config edit

执行后会弹出npm的配置文档,将以下类容复制到文件末尾。

electron_mirror=https://npm.taobao.org/mirrors/electron/
electron-builder-binaries_mirror=https://npm.taobao.org/mirrors/electron-builder-binaries/

二、创建vue框架文件

这里不详细说了,就是创建一个vue项目,如果已有项目则跳过这一步。

三、到vue项目的目录里面安装electron

  Electron安装命令

npm install electron -g

  Vue项目添加Electron-builder打包工具

vue add electron-builder

四、做好以上步骤后就可以测试打包了

npm run serve    网页运行
 
npm run electron:serve   网页运行并打开客户端运行
 
npm run electron:build   构建打包客户端-会在根目录生成dist_electron文件夹
                         其中的XXX Setup XXX.exe就是安装包
 
                         需要打包别的平台,macOS,Linux等,去electron官网看看就知道了,简单的

五、其他配置

修改logo图片配置打包信息:注意:是vue.config.js文件,不是package.js

根目录下 vue.config.js文件
使用时候请去掉里面的注释,不然跑不起来。
我下面引入的图片里面有一个build/logo.ico的文件,这个文件大小必须是256*256的
然后这个build的目录在项目根目录下创建,图片放进去就行
module.exports = {
	pluginOptions: {
		electronBuilder: {
			builderOptions: {
				nsis: {
				  allowToChangeInstallationDirectory: true,
				  oneClick: false,
				  installerIcon: "./build/logo.ico",  //安装logo
				  installerHeaderIcon: "./build/logo.ico" //安装logo
				},
				electronDownload: {
					mirror: "https://npm.taobao.org/mirrors/electron/" //镜像设置
				},
				win: {
					icon: './build/logo.ico' //打包windows版本的logo
				},
				productName: "应用名称",  //应用的名称
			}
		}
	},
}

  我再放一份electron-builder的配置文件,对比下上下两个代码就知道里面怎么配置了

"build": {
    "productName":"xxxx",		//项目名 这也是生成的exe文件的前缀名
    "appId": "com.xxx.xxxxx",	//包名  
    "copyright":"xxxx",			//版权信息
    "directories": { 			//输出文件夹
      "output": "build"
    }, 
    "nsis": {	//nsis相关配置,打包方式为nsis时生效
      "oneClick": false, 								// 是否一键安装
      "allowElevation": true, 							// 允许请求提升,如果为false,则用户必须使用提升的权限重新启动安装程序。
      "allowToChangeInstallationDirectory": true, 		// 允许修改安装目录
      "installerIcon": "./build/icons/aaa.ico",			// 安装图标
      "uninstallerIcon": "./build/icons/bbb.ico",		//卸载图标
      "installerHeaderIcon": "./build/icons/aaa.ico", 	// 安装时头部图标
      "createDesktopShortcut": true, 					// 创建桌面图标
      "createStartMenuShortcut": true,					// 创建开始菜单图标
      "shortcutName": "xxxx", 							// 图标名称
      "include": "build/script/installer.nsh", 			// 包含的自定义nsis脚本
    },
    "publish": [
      {
        "provider": "generic", 		// 服务器提供商,也可以是GitHub等等
        "url": "http://xxxxx/" 		// 服务器地址
      }
    ],
    "win": {
      "icon": "build/icons/aims.ico",
      "target": [
        {
          "target": "nsis",			//使用nsis打成安装包,"portable"打包成免安装版
          "arch": [
            "ia32",				//32位
            "x64" 				//64位
          ]
        }
      ]
    },
    "mac": {
      "icon": "build/icons/icon.icns"
    },
    "linux": {
      "icon": "build/icons"
    }
  }

  隐藏菜单栏目:根目录下src/background.js文件,找到app.on方法 (按照步骤来做,会生成这个文件的)

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()
	// 隐藏菜单栏
	const {
		Menu
	} = require('electron');
	Menu.setApplicationMenu(null);
	// hide menu for Mac 
	if (process.platform !== 'darwin') {
		app.dock.hide();
	}
})

  设定宽高也在这个文件里面

const win = new BrowserWindow({
		width: 1000,
		height: 800,
		title: '标题',
		webPreferences: {
			// 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,
			contextIsolation: !process.env.ELECTRON_NODE_INTEGRATION
		}
	})

  一堆堆操作后,你就能够得到一个有自己图标并且没有菜单栏的exe文件以及安装包和文件。

  运行后就像下面这个样子

附:electron打包设置可以选择安装目录

1.编辑package.json文件

2.找到"build": 节点,新增nsis

具体代码:

    "nsis":{
      "oneClick" : false,
      "allowToChangeInstallationDirectory" : true
    },

总结

到此这篇关于vue项目使用electron进行打包操作的文章就介绍到这了,更多相关vue使用electron打包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue3实现搜索项超过n行就折叠的思路详解

    vue3实现搜索项超过n行就折叠的思路详解

    我们在做列表查询的时候,会有很多查询项,如何实现超过n行查询项的时候自动折叠起来呢?本文给大家分享vue3实现搜索项超过n行就折叠的思路详解,感兴趣的朋友一起看看吧
    2022-06-06
  • vue.js中修饰符.stop的用法解析

    vue.js中修饰符.stop的用法解析

    这篇文章主要介绍了vue.js中修饰符.stop的用法解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Vue.js对象转换实例

    Vue.js对象转换实例

    这篇文章主要介绍了 Vue.js对象转换的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-06-06
  • Vue分页组件实现过程详解

    Vue分页组件实现过程详解

    Web应用程序中资源分页不仅对性能很有帮助,而且从用户体验的角度来说也是非常有用的。在这篇文章中,将了解如何使用Vue创建动态和可用的分页组件
    2022-12-12
  • Vue Socket.io源码解读

    Vue Socket.io源码解读

    这篇文章主要介绍了Vue Socket.io源码解读,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • vue.js表格分页示例

    vue.js表格分页示例

    这篇文章主要为大家详细介绍了vue.js表格分页示例,ajax异步加载数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • Vue3动态组件component不生效问题解决方法

    Vue3动态组件component不生效问题解决方法

    动态组件component是Vue中非常实用的一个功能,它可以根据条件动态切换不同的组件,在Vue3中使用方法和Vue2基本一致,在vue3使用component动态组件展示组件时,组件就是不展示显示空白,所以本文记录了Vue3动态组件component不生效问题解决方法,需要的朋友可以参考下
    2024-08-08
  • Vue源码makeMap函数深入分析

    Vue源码makeMap函数深入分析

    vue源码中的makeMap用在很多地方,主要是判断标签是原生标签还是用户自定义的组件,但是标签很多,如果每判断一次都执行一次循环,累计下来,性能损耗还是很大的,makeMap就是解决这个问题出现的
    2022-08-08
  • vue中的cookies缓存存值方式 超简单

    vue中的cookies缓存存值方式 超简单

    这篇文章主要介绍了vue中的cookies缓存存值方式,超简单!具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • cdn模式下vue的基本用法详解

    cdn模式下vue的基本用法详解

    这篇文章主要介绍了cdn模式下vue的基本用法,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-10-10

最新评论