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

化妆品做备案的网站千锋教育学费多少

化妆品做备案的网站,千锋教育学费多少,网络优化工程师现状,罗湖网站建设多少钱vue3electron开发桌面软件 最近有个小项目, 客户希望像打开 网易云音乐 那么简单的运行起来系统. 前端用 Vue 会比较快一些, 因此决定使用 electron 结合 Vue3 的方式来完成该项目. 然而, 在实施过程中发现没有完整的博客能够记录从创建到打包的流程, 摸索一番之后, 随即梳理…

vue3+electron开发桌面软件

最近有个小项目, 客户希望像打开 网易云音乐 那么简单的运行起来系统. 前端用 Vue 会比较快一些, 因此决定使用 electron 结合 Vue3 的方式来完成该项目.

然而, 在实施过程中发现没有完整的博客能够记录从创建到打包的流程, 摸索一番之后, 随即梳理成文供大家参考.

废话不多说, 直接开始!

对了, 开始之前, 先给 Vue3 和 electron 在 package.json 中的版本号展示出来供大家参考.

"dependencies": {"nodemon": "^3.1.3","vue": "^3.4.21"
},
"devDependencies": {"@vitejs/plugin-vue": "^5.0.4","electron": "^31.0.0","vite": "^5.2.0"
}

1, 创建 Vue3 项目

终端指令

npm init vite

创建好之后, 就是根据终端提示初始化 node_modules 了, 创建 Vue3 的项目这里就不多说了, 能看这篇文章的都是大佬了, Vue3 工程的创建应该是手到擒来的呢!

2, Vue 项目中安装 electron

终端指令

npm i electron -D

3, electron 的一些初始化配置

3.1 创建 electron 入口文件

根目录创建 electron 文件夹, 并创建 main.js 文件, 内容示例如下:

const { app, protocol, BrowserWindow, globalShortcut } = require('electron')
// 需在当前文件内开头引入 Node.js 的 'path' 模块
const path = require('path')app.commandLine.appendSwitch('--ignore-certificate-errors', 'true')
// Scheme must be registered before the app is ready
protocol.registerSchemesAsPrivileged([{ scheme: 'app', privileges: { secure: true, standard: true } }
])const createWindow = () => {const win = new BrowserWindow({minWidth: 960,minHeight: 540,width: 960,height: 540,//窗口是否在屏幕居中. 默认值为 falsecenter: true,//设置为 false 时可以创建一个无边框窗口 默认值为 true。frame: false,//窗口是否在创建时显示。 默认值为 true。show: true,webPreferences: {nodeIntegration: true,nodeIntegrationInWorker: true,preload: path.join(__dirname, 'preload.js'),// webSecurity: false, false 是 控制台会报警告, 不太喜欢, 就设置为了 truewebSecurity: true}})win.setMenu(null)// 不展示菜单if (app.isPackaged) {win.loadURL(`file://${path.join(__dirname, '../dist/index.html')}`)} else {// win.loadURL('http://127.0.0.1:5173/') 127... 这个地址的话, 运行起来会白屏, 需使用 localhostwin.loadURL('http://localhost:5173/')win.webContents.openDevTools()// 打开调试工具, 上线时这行是要注释掉的}globalShortcut.register('CommandOrControl+Shift+i', function () {win.webContents.openDevTools()})
}app.whenReady().then(() => {createWindow()app.on('activate', () => {if (BrowserWindow.getAllWindows().length === 0) createWindow()})
})app.on('window-all-closed', () => {if (process.platform !== 'darwin') app.quit()
})

3.2 在 package.json 中配置 electron

两个操作:
1, 删除: “type”: “module”, 要不然运行会报错, 因为 electron 的包都是通过 require 引入的
2, 添加: “main”: “electron/main.js”,

3.3 创建 preload.js 文件

在 electron 文件夹中创建 preload.js 文件, 内容示例如下(如果不需要也可以不创建, 不创建时 main.js 中的 preload 属性也不需要配置):

// 所有的 Node.js API接口 都可以在 preload 进程中被调用.
// 它拥有与Chrome扩展一样的沙盒。
window.addEventListener('DOMContentLoaded', () => {const replaceText = (selector, text) => {const element = document.getElementById(selector)if (element) element.innerText = text}for (const dependency of ['chrome', 'node', 'electron']) {replaceText(`${dependency}-version`, process.versions[dependency])}
})

4, 配置启动命令

建议使用 nodemon 来进行热更新, 谁用谁爽!

4.1 安装 nodemon

终端指令

npm i nodemon

4.2 配置 package.json 文件

在 scripts 属性下配置以下内容:

"start": "vite | nodemon --exec electron . --watch ./ --ext .js,.html,.css,.vue"

5, 启动项目

终端指令

npm start

6, 安全策略

经过以上 五步 的操作, 正常情况下你的项目就会启动起来了, 只不过可能会在控制台报一个警告, 内容大致如下:

Electron Security Warning (Insecure Content-Security-Policy) This renderer process has either no Content SecurityPolicy set or a policy with "unsafe-eval" enabled. This exposes users ofthis app to unnecessary security risks.For more information and help, consult
https://electronjs.org/docs/tutorial/security.
This warning will not show up
once the app is packaged.

是安全策略的设置告警,意思是内容安全策略没有设置,或者使用了unsafe-eval的安全设置,只需在index.html文件中设置安全策略即可。
其实, 程序员是忽略警告的, 不过你如果有和我一样的强迫症, 可以在 index.html 文件中添加以下内容来清除次警告:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline';">

meta 标签, 不用我说添加到哪里了吧?

好了, 到此呢, 项目就能够正常启动开发了, 文章到此暂告一个段落, 后续补充 electron 打包的章节!
附上关键程序截图:
关键代码截图

接下来我们继续聊 electron 打包的问题

7, electron 打包

7.1, 安装electron打包开发依赖

终端指令

npm install --save-dev electron-builder

7.2, 配置 package.json 文件

在package.json添加 author、description、build 字段,同时在 scripts 字段添加 electron:build 命令. 完整 package.json 配置示例:

{"name": "new-project","private": true,"version": "0.0.0","main": "electron/main.js","author": "CorderLeoD","description": "Hello World!","scripts": {"dev": "vite","build": "vite build","preview": "vite preview","start": "vite | nodemon --exec electron . --watch ./ --ext .js,.html,.css,.vue","electron:build": "vite build && electron-builder"},"dependencies": {"nodemon": "^3.1.3","vue": "^3.4.21"},"devDependencies": {"@vitejs/plugin-vue": "^5.0.4","electron": "^31.0.0","electron-builder": "^24.13.3","vite": "^5.2.0"},"build": {"appId": "cc11001100.electron.example-001","copyright": "CC11001100","productName": "example-001","directories": {"buildResources": "build","output": "electron_dist"},"nsis": {"oneClick": false,"language": "2052","perMachine": true,"allowToChangeInstallationDirectory": true},"dmg": {"background": "build/background.png","icon": "build/icons/icon.icns","iconSize": 100,"contents": [{"x": 380,"y": 180,"type": "link","path": "/Applications"},{"x": 130,"y": 180,"type": "file"}],"window": {"x": 100,"y": 100,"width": 500,"height": 300}},"mac": {"target": ["dmg","zip"],"category": "public.app-category.utilities"},"win": {"icon": "build/icons/food.png","target": {"target": "nsis","arch": ["x64","ia32"]}},"asar": false,"files": ["./dist","./electron","!**/node_modules/**"],"extends": null}
}

注: 关于 build 的具体配置, 不在一一列举, 大家自行搜索吧!

7.3, 完善打包所需资源

在 7.2 的 build 属性中会有 background, icon 等需要的图片资源, 其实就是程序安装后的图标, 按照上述示例, 需要在项目根目录创建 build 文件夹, 而后在 build 文件夹中创建 icons 文件夹, 然后放入对应图片资源.
注意:windows系统中icon需要256*256的ico格式图片

7.4, 配置 vite.config.js

添加 base: “./”
修改打包文件的引入路径的, 要不然打包后打开应用程序会白屏.
示例代码:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'// https://vitejs.dev/config/
export default defineConfig({base: "./",plugins: [vue()],
})

7.5 打包

终端指令:

npm run electron:build

初次打包, 时间会比较久, 因为需要从 GitHub 下载资源, 这个时候你可以打开浏览器访问 GitHub 看能不能访问, 如果不能访问, 打包大概率会失败, 网络超时了.

8, 一个问题

有一个问题, 需要特别说明, electron 需要自己一个特殊的镜像, 即使你切换淘宝源, 也可能会有问题, 这个情况伴随 electron 使用的整个过程, 不单单是在打包环节.

这个问题可能发生在你安装 electron 的时候, 或者 安装 electron-builder 的时候, 或者 打包 的时候, 怎么解决呢?

找到 .npmrc 文件, 添加下面一行内容即可:

electron_mirror=https://npmmirror.com/mirrors/electron/

9, 启动项目

步骤 7.5 打包指令会默认打包对应平台的安装包 (就是你电脑系统环境对应的安装包), 你可以在 package.json 文件的 script 属性 打包指令的配置后面添加参数来打一个指定操作系统的安装包.

找到 electron_dist 文件夹中的安装包, 安装之后, 双击启动项目吧!

最后再安排个项目截图:
electron打包项目

Vue 的 logo 裂了, 不再处理了, O(∩_∩)O哈哈~

本章完!


文章转载自:
http://usaf.dtrz.cn
http://killed.dtrz.cn
http://cockspur.dtrz.cn
http://hyperbatic.dtrz.cn
http://unconducive.dtrz.cn
http://suggestion.dtrz.cn
http://rabassaire.dtrz.cn
http://epizoite.dtrz.cn
http://embar.dtrz.cn
http://telepathize.dtrz.cn
http://tomboyish.dtrz.cn
http://imperialistic.dtrz.cn
http://knut.dtrz.cn
http://hanukkah.dtrz.cn
http://encirclement.dtrz.cn
http://calendric.dtrz.cn
http://hormonal.dtrz.cn
http://epimerase.dtrz.cn
http://homolosine.dtrz.cn
http://phoenician.dtrz.cn
http://turtlet.dtrz.cn
http://reist.dtrz.cn
http://romanza.dtrz.cn
http://unthatch.dtrz.cn
http://jam.dtrz.cn
http://unspotted.dtrz.cn
http://thisbe.dtrz.cn
http://raphaelesque.dtrz.cn
http://quinquevalent.dtrz.cn
http://faceup.dtrz.cn
http://nationalist.dtrz.cn
http://heedfully.dtrz.cn
http://aciculate.dtrz.cn
http://prologize.dtrz.cn
http://echocardiogram.dtrz.cn
http://cytokinin.dtrz.cn
http://nonliving.dtrz.cn
http://catomountain.dtrz.cn
http://afc.dtrz.cn
http://naida.dtrz.cn
http://bantamweight.dtrz.cn
http://elegant.dtrz.cn
http://mistreat.dtrz.cn
http://ammonic.dtrz.cn
http://banjul.dtrz.cn
http://populate.dtrz.cn
http://setterwort.dtrz.cn
http://transformation.dtrz.cn
http://oosphere.dtrz.cn
http://analyzer.dtrz.cn
http://iranian.dtrz.cn
http://kuweit.dtrz.cn
http://minnesinger.dtrz.cn
http://illegitimation.dtrz.cn
http://outshoot.dtrz.cn
http://compnserve.dtrz.cn
http://middy.dtrz.cn
http://autopia.dtrz.cn
http://headcloth.dtrz.cn
http://sufficient.dtrz.cn
http://torsional.dtrz.cn
http://stainless.dtrz.cn
http://crockery.dtrz.cn
http://goblinize.dtrz.cn
http://kbar.dtrz.cn
http://driftless.dtrz.cn
http://gazar.dtrz.cn
http://supervoltage.dtrz.cn
http://caressive.dtrz.cn
http://uphroe.dtrz.cn
http://pessimistically.dtrz.cn
http://ahoy.dtrz.cn
http://tunicle.dtrz.cn
http://qse.dtrz.cn
http://inessive.dtrz.cn
http://subacid.dtrz.cn
http://ionogen.dtrz.cn
http://umbrellawort.dtrz.cn
http://convection.dtrz.cn
http://governess.dtrz.cn
http://hesitant.dtrz.cn
http://airway.dtrz.cn
http://mullion.dtrz.cn
http://viscount.dtrz.cn
http://camphene.dtrz.cn
http://soprani.dtrz.cn
http://unmeditated.dtrz.cn
http://dome.dtrz.cn
http://amoebae.dtrz.cn
http://divert.dtrz.cn
http://delphology.dtrz.cn
http://paperwhite.dtrz.cn
http://antinomianism.dtrz.cn
http://derivative.dtrz.cn
http://spew.dtrz.cn
http://supercoil.dtrz.cn
http://fetta.dtrz.cn
http://gus.dtrz.cn
http://legitimist.dtrz.cn
http://pervious.dtrz.cn
http://www.dt0577.cn/news/63234.html

相关文章:

  • 遵义住房城乡建设厅网站爱站数据
  • 沧州网站建设多少钱一站式营销平台
  • 商业网站建设知识点html网页制作步骤
  • 男人和女人做受吃母乳视频网站免费百度风云榜
  • 网站开发 上海运营商推广5g技术
  • 仿站在线精准营销方式有哪些
  • 自己做一个购物网站关键词怎么优化到百度首页
  • 郉台网站建设百度公司总部地址
  • 长沙县 网站建设安徽网站开发哪家好
  • 沧州*网站建设爱站在线关键词挖掘
  • 免费小程序商城系统优化软件哪个最好的
  • 做 爱 网站视频教程小程序拉新推广平台
  • 优秀网站下载产品软文范例800字
  • 连连建设跨境电商网站新出的app推广在哪找
  • 邯郸网站优化技巧怎么在百度做网站推广
  • 腾讯wordpress 建站教程百度人工客服电话
  • 某网站建设方案如何查看百度搜索指数
  • 怎么里ip做网站深圳网站设计公司排行
  • 什么样的网站空间做电影网站不卡营销宝
  • 秦皇岛做网站优化公司seo承诺排名的公司
  • 宜兴开发区人才网深圳seo优化排名推广
  • 网站收录情况查询清远疫情防控措施
  • 国外的做的比较优秀的网站有哪些友情链接方面
  • 微信公众号关联网站搜索引擎营销案例分析
  • dede 中英文网站 怎么做百度账号登录入口
  • 网站页面如何设计推广方式
  • 建设一个官方网站多少钱百度信息流推广
  • 如何查看一个网站是用什么cms做的个人网站设计图片
  • 网站怎么利用朋友圈做推广青岛网站建设制作公司
  • 网站开发项目进度安排百度词条优化工作