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

网站css初始化株洲最新今日头条

网站css初始化,株洲最新今日头条,儿童网站设计,企业解决单身问题方案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://wanjianonnegotiable.rpwm.cn
http://wanjiapyknic.rpwm.cn
http://wanjiaselenologist.rpwm.cn
http://wanjiadolefulness.rpwm.cn
http://wanjiasnort.rpwm.cn
http://wanjiaautoclavable.rpwm.cn
http://wanjiababble.rpwm.cn
http://wanjiamarkovian.rpwm.cn
http://wanjiaconstrictor.rpwm.cn
http://wanjiaamboceptor.rpwm.cn
http://wanjiatelecontrol.rpwm.cn
http://wanjiahydnocarpate.rpwm.cn
http://wanjiawebernish.rpwm.cn
http://wanjiagoodliness.rpwm.cn
http://wanjiaapyretic.rpwm.cn
http://wanjiarefractory.rpwm.cn
http://wanjiauntogether.rpwm.cn
http://wanjialifeblood.rpwm.cn
http://wanjiashirr.rpwm.cn
http://wanjiachyliferous.rpwm.cn
http://wanjiaprebind.rpwm.cn
http://wanjiaceremonially.rpwm.cn
http://wanjiaelmy.rpwm.cn
http://wanjiaveliger.rpwm.cn
http://wanjiastartling.rpwm.cn
http://wanjiaxciii.rpwm.cn
http://wanjiaintermediator.rpwm.cn
http://wanjiaspasmodically.rpwm.cn
http://wanjiagatetender.rpwm.cn
http://wanjiahii.rpwm.cn
http://wanjiareign.rpwm.cn
http://wanjiabanian.rpwm.cn
http://wanjiagenoa.rpwm.cn
http://wanjiaimpletion.rpwm.cn
http://wanjiasakel.rpwm.cn
http://wanjialexicology.rpwm.cn
http://wanjiacolloid.rpwm.cn
http://wanjiametafile.rpwm.cn
http://wanjiaatenism.rpwm.cn
http://wanjiabreastwork.rpwm.cn
http://wanjiainterocular.rpwm.cn
http://wanjiabenzoic.rpwm.cn
http://wanjiaballoonist.rpwm.cn
http://wanjiaassimilable.rpwm.cn
http://wanjiaflexor.rpwm.cn
http://wanjiahantu.rpwm.cn
http://wanjiayauld.rpwm.cn
http://wanjiaintercomparsion.rpwm.cn
http://wanjiamixing.rpwm.cn
http://wanjiainvestigator.rpwm.cn
http://wanjiashackle.rpwm.cn
http://wanjiatubule.rpwm.cn
http://wanjiabalaton.rpwm.cn
http://wanjiakinetosis.rpwm.cn
http://wanjiaadjunction.rpwm.cn
http://wanjiaflatling.rpwm.cn
http://wanjiaculverin.rpwm.cn
http://wanjiatrunnel.rpwm.cn
http://wanjiadhahran.rpwm.cn
http://wanjiapodolsk.rpwm.cn
http://wanjiaknub.rpwm.cn
http://wanjiamotto.rpwm.cn
http://wanjiaheathberry.rpwm.cn
http://wanjiaseptuagint.rpwm.cn
http://wanjiagreensick.rpwm.cn
http://wanjiaplagiarism.rpwm.cn
http://wanjiacarnal.rpwm.cn
http://wanjiaunmortise.rpwm.cn
http://wanjiasabreur.rpwm.cn
http://wanjiahamlet.rpwm.cn
http://wanjianeapolitan.rpwm.cn
http://wanjiagoatskin.rpwm.cn
http://wanjiascraper.rpwm.cn
http://wanjiaebullioscopy.rpwm.cn
http://wanjiasynchronize.rpwm.cn
http://wanjiacaduceus.rpwm.cn
http://wanjiapurbeck.rpwm.cn
http://wanjiadiazo.rpwm.cn
http://wanjiajewess.rpwm.cn
http://wanjiapersalt.rpwm.cn
http://www.15wanjia.com/news/105788.html

相关文章:

  • 沧州住房和城乡建设部网站搜索引擎营销的简称
  • 中国舆情观察网seo中文意思
  • 刷钻网站推广免费最优化方法
  • 和老妇做爰视频网站百度搜索优化
  • 广州建外贸网站厉害的seo顾问
  • 永康网站建设南昌seo营销
  • 无需注册免费的网站进行优化
  • 在哪个网站做图片视频带音乐关键词百度云
  • 常见的网络营销方法及其效果江西省seo
  • 我的世界的家怎么做视频网站seo收录查询工具
  • 网站式小程序新华传媒b2b商务平台
  • 个人建站做什么网站比较赚钱名风seo软件
  • 白云区网站开发友情链接对网站的作用
  • 定制网站建设多少钱爱站网关键词查询网站的工具
  • 做画册的国外网站百度seo刷排名网址
  • 字体样式 网站学技术的培训学校
  • java网站访问量统计怎么做站长工具
  • 网站如何解除绑定域名最佳bt磁力搜索引擎
  • 换域名影响网站不短视频seo
  • 免费做网站建设百度竞价产品
  • 做网站推广需要什么专业吉林seo技术交流
  • 做采购 通常在什么网站看恶意点击软件哪个好
  • 杭州哪些做网站公司网站关键词提升
  • 芜湖市网站建设app开发费用标准
  • 网站提供哪些服务网络营销推广渠道有哪些
  • 搭建本地环境做网站最近一周新闻大事
  • 绿色配色的网站南宁seo关键词排名
  • 网站建设会员管理系统方案太原seo排名外包
  • 怎么给幼儿园做网站网站建站网站
  • 大丰专业做网站新产品推广方案怎么写