首页 > 其他分享 >Electron,VUEJS3,Vite,TypesSript 开发环境配置

Electron,VUEJS3,Vite,TypesSript 开发环境配置

时间:2023-08-24 15:57:20浏览次数:64  
标签:web ts src json Electron VUEJS3 TypesSript tsconfig

Electron,VUEJS3,Vite,TypesSript 开发环境配置

项目早期是vue3+vite开发的,后期由于运营需求,要修改为Win安装包。

方案还是比较多的:

1. WPF - Webview

由于目前只需要兼容win,所以可以选择WPF,但WPF需要WebView的,还需要本地架设服务。整体部署比较复杂以及需要熟悉C#与WPF相关开发。

2. 原生开发

已经开发完Web,时间成本太高。

3. Electron

跨平台,并且对web,js友好,支持npm,node库。 开发成本较低。 最终方案还是选它,未来也方便移植其他平台。

Electron

开始想着,在现有的项目中加入Electron结果遇到很多坑,整体开发体验也不顺畅,跳过~~~。

创建Electron项目,在拷贝原Web项目,虽然遇到各种坑,不过最后整体配置好,开发还是很顺手,下面记录一下配置步骤。

安装 Electron & Vue

  1. 使用Electron Forge创建目录为my-new-app的模板项目,只需一行语句 npm init electron-app@latest my-new-app -- --template=vite-typescript

electron提供两种模板,一种webpack,一种vite,详情

  1. 进入目录,NPM安装开发所需要的web包,下面是一些必须安装的。
    "vite": "^4.4.9",
   "vue": "^3.3.4",
   "vue-router": "^4.2.4",
   "vue-tsc": "^1.8.8",
   "@vue/tsconfig": "^0.4.0",
   "naive-ui": "^2.34.4",

广告一下我使用的UI组件,naive-ui,不喜欢的朋友可以忽略。

设置 package.json

配置package.json, 这里要说一下为什么配置,默认的模板项目中直接是启动APP,对于开发并不友好,尤其是习惯web开发。 增加Script命令:

       "web-dev": "vite --mode dev --config vite.renderer.config.ts",
    "web-build": "vite build  --mode prod",
    "web-preview": "vite preview",
    "start": "electron-forge start",
    "package": "electron-forge package",
    "make": "electron-forge make",
    "publish": "electron-forge publish",
    "lint": "eslint --ext .ts,.tsx ."

web开头的为浏览器开发环境,其他的为加壳环境。

以为这样简单设置就可以运行了.... 还有好多坑,继续看~

配置tsconfig.json

配置tsconfig.json, 由于选的是typescript开发模板,Electron默认创建了基于typescript的node项目,会和你要开发的vue项目有冲突。这里我的解决办法是配置两套。两套针对不同文件。

  1. tsconfig.json 基础的
  2. tsconfig.node.json 是针对node环境的,主要控制的文件是main.ts未来可能还有其它。
  3. tsconfig.web.json 是针对web环境的,主要控制src/*里面除了main.ts的所有文件。

由于src中包含一个公共文件main.ts,需要在tsconfig.web.json中排除。 最后形成的是三份配置。

基础配置tsconfig.json

{
  "files": [],
  "references": [
    {
      "path": "./tsconfig.node.json"
    },
    {
      "path": "./tsconfig.web.json"
    }
  ],
  "include": [
    "env.d.ts",
    "global.d.ts"
  ]
}

node配置tsconfig.node.json

注意添加src/main.ts

{
  "extends": "@tsconfig/node18/tsconfig.json",
  "compilerOptions": {
    "target": "ESNext",
    "module": "commonjs",
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "noImplicitAny": true,
    "sourceMap": true,
    "baseUrl": ".",
    "outDir": "dist",
    "moduleResolution": "node",
    "resolveJsonModule": true
  },
  "include": ["src/main.ts"]
}

web配置tsconfig.web.json

注意排除src/main.ts

{
  "extends": "@vue/tsconfig/tsconfig.dom.json",
  "include": ["env.d.ts", "src/**/*", "src/**/*.vue", "src/**/*.ts", "global.d.ts", "lib/main.ts"],
  "exclude": ["src/**/__tests__/*", "src/main.ts"],
  "compilerOptions": {
    "composite": true,
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    },
    "types": [
      "naive-ui/volar"
    ]
  }
}


运行

现在可以试试运行npn run web-dev 或npn run start了, 后续配置环境变量。下次记录吧

标签:web,ts,src,json,Electron,VUEJS3,TypesSript,tsconfig
From: https://www.cnblogs.com/yangxiao/p/17654310.html

相关文章

  • 我的第一个electron
    安装步骤参考:https://www.electronjs.org/zh/docs/latest/tutorial/quick-start 拉取镜像关于拉取  electronmodule镜像遇到的问题失败的解决方案(对于别人来说可能好使)https://blog.csdn.net/Akua_/article/details/132102805我在我的  C:\Windows\System......
  • #yyds干货盘点#electron-egg: 当代桌面开发框架
    当前技术社区中出现了各种下一代技术或框架,却很少有当代可以用的,于是electron-egg就出现了。当前桌面软件技术有哪些?语言技术优点缺点C#wpf专业的桌面软件技术,功能强大学习成本高Javaswing/javaFx跨平台和语言流行GUI库少,界面不美观C++Qt跨平台,功能和类库丰富学习成本高Swift无非跨......
  • 关于Electron版本和NodeJS版本的关系
    关于Electron的介绍,可以查看官方文档Electron官方文档使用Electron进行开发时,本地必须安装Node运行环境(官方推荐安装长期支持(LTS)的版本)本地安装的Node的版本,和Electron程序运行所需要的版本没有关系。例如:使用Electron14.0.0版进行开发时,运行所需要的Node版本是14.17.0,这时候......
  • 解决 electron-forge 打包的 setup.exe 在安装动画未结束前就开了程序的主界面问题
    问题描述:electron-forge打包的setup.exe在安装动画未结束前就开了程序的主界面问题。问题演示图片:修复后的演示图片:原因这种setup.exe被称为Squirrel.Windows为什么安装动画未结束就启动了程序,原因在下面的文档里,这里是electron-forge相关文档:Handlingstartup......
  • electron渲染进程与主进程之间通信
    首先main.js中通过preload进行预加载脚本__dirname字符串指向当前正在执行的脚本的路径const{app,BrowserWindow}=require('electron');//引入electronconstpath=require('path');letwin;letwindowConfig={width:300,height:600,minWidth:300,we......
  • 在vue中使用Electron开发C/S架构中的C(客户端界面)
    Electron简介:Electron是利用web前端技术进行桌面应用开发的一套框架。我是用的nodejs版本(16.18.1)和npm版本(8.19.2):创建vue-electron项目,鄙人测试了两种方式创建vue-electron项目,如下所示:1、vue-cli-plugin-electron-builder插件方式1.全局安装vue-cli:  npminstall-g@vue/......
  • 清除 Electron (原子壳)中的缓存数据
    最佳答案 Electron将其缓存存储在以下文件夹中:window:C:\Users\<user>\AppData\Roaming\<yourAppName>\CacheLinux:/home/<user>/.config/<yourAppName>/Cache操作系统:/Users/<user>/Library/ApplicationSupport/<yourAppName>/Cache因此,删除这......
  • Vue3 Vite electron 开发桌面程序
    Electron是一个跨平台的桌面应用程序开发框架,它允许开发人员使用Web技术(如HTML、CSS和JavaScript)构建桌面应用程序,这些应用程序可以在Windows、macOS和Linux等操作系统上运行。Electron的核心是Chromium浏览器内核和Node.js运行时环境。Chromium内核提供了现代浏览器的功能,例如HTML......
  • electron的electron-packager打包运行和electron-builder生产安装包过程,学透 Electron
    electron的electron-packager打包运行和electron-builder生产安装包过程开发electron客户端程序,打包是绕不开的问题。macOS应用构建,看似近在咫尺,实则坑坑致命。场景:mac笔记本打包,以及生产出可交付的软件安装包,如何避坑,如何理解app的产生过程!!!!可以按照我测试的路程来配置环境。包......
  • 跨平台GUI开发技术:QT,GTK+, C#(WinForm/WPF), Java(Swing/AWT/JavaFX), Electron, comp
    1.Compose-multiplatformJetbrian推出的跨全平台开发组件技术,android/ios/desktop(win,linux,mac)/web,目前生态完善中,还不够成熟,但有潜力,支持原生接口调用,kotlin作为主要语言。https://www.jetbrains.com/zh-cn/lp/compose-multiplatformhttps://github.com/JetBrains/compose-......