当前位置: 首页 > news >正文

北京企业网站建设公司seo排名第一的企业

北京企业网站建设公司,seo排名第一的企业,常州的平台公司,网站大幅广告vue electron 开发桌面端应用 安装 electron npm i electron -D记得加上-D,electron 需添加到devDependencies,如果添加到dependencies后面运行可能会报错 根目录创建electron文件夹,在electron文件夹创建main.js(或者backgrou…

vue + electron 开发桌面端应用


安装 electron

npm i electron -D

记得加上-D,electron 需添加到devDependencies,如果添加到dependencies后面运行可能会报错

根目录创建electron文件夹,在electron文件夹创建main.js(或者background.js)

在文件中添加如下代码:

// 控制应用生命周期和创建原生浏览器窗口的模组
const { app, BrowserWindow, Menu } = require('electron')
const path = require('path')function createWindow() {// 创建浏览器窗口const mainWindow = new BrowserWindow({width: 1200,height: 800,webPreferences: {// 书写渲染进程中的配置nodeIntegration: true, //开启true这一步很重要,目的是为了vue文件中可以引入node和electron相关的APIcontextIsolation: false, // 可以使用require方法enableRemoteModule: true, // 可以使用remote方法},})// 加载 index.htmlmainWindow.loadFile(path.resolve(__dirname, '../dist/index.html')) // 新增
}
// 这段程序将会在 Electron 结束初始化
// 和创建浏览器窗口的时候调用
// 部分 API 在 ready 事件触发后才能使用。
app.whenReady().then(() => {createWindow()app.on('activate', function () {// 通常在 macOS 上,当点击 dock 中的应用程序图标时,如果没有其他// 打开的窗口,那么程序会重新创建一个窗口。if (BrowserWindow.getAllWindows().length === 0) createWindow()})
})// 除了 macOS 外,当所有窗口都被关闭的时候退出程序。 因此,通常对程序和它们在
// 任务栏上的图标来说,应当保持活跃状态,直到用户使用 Cmd + Q 退出。
app.on('window-all-closed', function () {if (process.platform !== 'darwin') app.quit()
})

修改package.json

1、在scripts同级下添加

"main": "electron/main.js",

根据实际的文件路径配置

2、查看是否存在"type": "module"配置
如果有,则删除"type"配置,因为main中用的不是es6的模块引入

3、"scripts"中添加"electron:dev": "electron .",用于启用electron


现在就可以通过npm run electron:dev运行electron了

因为上面main.css运行的是 dist文件夹 中的 index.html ,所以如果没有该文件的得先npm run build

多环境配置并在本地开发时使用热更新

安装 electron-reload

npm i electron-reload

修改”scripts“ 指令

"electron:dev": "set ELECTRON_ENV=development& electron .",

在本地运行时添加值为 ‘development’ 的 ELECTRON_ENV 环境变量

修改main.js内容

完整代码如下

// 控制应用生命周期和创建原生浏览器窗口的模组
const { app, BrowserWindow, Menu } = require('electron')
const path = require('path')function createWindow() {// 创建浏览器窗口const mainWindow = new BrowserWindow({width: 1200,height: 800,webPreferences: {// 书写渲染进程中的配置nodeIntegration: true, //开启true这一步很重要,目的是为了vue文件中可以引入node和electron相关的APIcontextIsolation: false, // 可以使用require方法enableRemoteModule: true, // 可以使用remote方法},})console.log("process.env.ELECTRON_ENV", process.env.ELECTRON_ENV)// let env = 'pro'let env = process.env.ELECTRON_ENV// 环境变量 ELECTRON_ENV 值为 development 则使用热更新// 配置热更新if (env == 'development') {const elePath = path.join(__dirname, '../node_modules/electron')require('electron-reload')('../', {electron: require(elePath),})// 热更新监听窗口mainWindow.loadURL('http://localhost:3100')// 打开开发工具mainWindow.webContents.openDevTools()} else {// 生产环境中要加载文件,打包的版本Menu.setApplicationMenu(null)// 加载 index.htmlmainWindow.loadFile(path.resolve(__dirname, '../dist/index.html')) // 新增}
}
// 这段程序将会在 Electron 结束初始化
// 和创建浏览器窗口的时候调用
// 部分 API 在 ready 事件触发后才能使用。
app.whenReady().then(() => {createWindow()app.on('activate', function () {// 通常在 macOS 上,当点击 dock 中的应用程序图标时,如果没有其他// 打开的窗口,那么程序会重新创建一个窗口。if (BrowserWindow.getAllWindows().length === 0) createWindow()})
})// 除了 macOS 外,当所有窗口都被关闭的时候退出程序。 因此,通常对程序和它们在
// 任务栏上的图标来说,应当保持活跃状态,直到用户使用 Cmd + Q 退出。
app.on('window-all-closed', function () {if (process.platform !== 'darwin') app.quit()
})

这里 http://localhost:3100 为我本地开发时项目运行的url

运行
本地启动web项目
一般是:npm run dev
然后再:npm run electron:dev启动electron。这样electron就可以实时监听窗口了。

打包应用

安装 electron-builder

npm i electron-builder -D

package.json中新增scripts

"electron:build": "vite build --mode application & electron-builder build --config electron-builder.json",

创建 electron-builder.json 进行打包配置

{"appId": "com.example.myapp","productName": "app名字","files": ["./electron/main.js", "./dist"],"extraFiles": ["./videos", "./cvideo"], "directories": {"output": "./buileder"},"nsis": {"oneClick": false,"perMachine": true,"allowToChangeInstallationDirectory": true},"win": {"icon": "public/icon.png","target": ["nsis", "zip"]},"mac": {"icon": "public/icon.png","target": "dmg"},"linux": {"icon": "public/icon.png","target": "AppImage"},"dmg": {"contents": [{"x": 110,"y": 150},{"x": 240,"y": 150,"type": "link","path": "/Applications"}]},"appx": {"publisher": "CN=app名字"}}

public/icon.png 为应用的icon图标,没有的话可以删除

运行打包命令

npm run electron:build 

打包成功后,在根目录会出现一个buileder文件夹,打包后的应用就在里面
在这里插入图片描述

打包过程中常见的一些坑

一、打包后没有报错,但打开后一片空白
打开调试工具发现文件引入失败,且引入路径也不对。这种一般是根路径配置问题
解决方法:
1、配置base,以vite为例
在vite.config.ts中添加base配置

export default defineConfig({base: './',
})

2、在 index.html 中查看head中是否有这段标签

<base href="/">

注意!注意!注意!(这个bug我之前找了好一会儿才发现)

有的话删除掉

二、如果报:Package "electron" is only allowed in "devDependencies". Please remove it from the "dependencies"

这个错误表示package.json文件中依赖electron应该在 devDependencies而不是dependencies中

解决方法:
将electron移到devDependencies,并重装依赖

三、如果报类似 http://github.com/xxxx/xxxx 的错误一般是网络问题

解决方法:
过一会儿再尝试,或者科学上网

四、如果报类似 zip: not a valid zip file github.com/develar/app-builder/pkg/archive/zipx.(*Extractor).extractAndWriteFile的错误

解决方法:
重装依赖

http://www.yidumall.com/news/48965.html

相关文章:

  • 茂名网站建设公司军事新闻最新
  • 手机网站网页设计小红书推广策略
  • 大观网站建设seo流量是什么
  • 网站优化怎么做 百度文库宁波网站建设公司
  • pc网站 公众号数据互通深圳网站关键词排名优化
  • 音乐盒的网站怎么做百度关键词排名突然没了
  • 电子工程王力卓品牌seo培训咨询
  • 中国建设协会八大员优化怎么做
  • 沈阳网站排名工具上海整站seo
  • 建设国家地质公园网站主要功能营销型网站建设实训总结
  • 东营做网站的公司网站seo优化报告
  • 区域网站设计百度seo营销
  • 使用iframe做网站网络舆情软件免费入口
  • 注册公司费用流程百度seo推广优化
  • 教育类网站如何做搜索引擎优化的技巧
  • 想要推广页正式站长工具seo综合查询烟雨楼
  • 闵行区网站制作淘宝优化关键词的步骤
  • aspcms 网站搬家合肥网站推广公司
  • 什么是网络营销的重要特点广东做seo的公司
  • 怎么查网站做404页面没学电商运营的培训机构
  • 淄博学校网站建设方案肇庆seo外包公司
  • 提供网站建设空间做个网页需要多少钱?
  • 东莞市五金有限公司 寮步 技术支持 网站建设百度账号免费注册
  • 建站模板外贸收录情况有几种
  • seo对企业网站运营有何意义河南seo优化
  • 网站建设给客户看的ppt模板游戏行业seo整站优化
  • 门户网站开展集约化建设的情况seo整站优化什么价格
  • 做网站通过什么赚钱企业网站制作流程
  • 警惕成人网站免费看手机搜索引擎营销ppt
  • 数据中台建设杭州seo网站推广排名