vue3+electron+typescript 项目安装、打包、多平台踩坑记录

环境说明

这里的测试如果没有其他特别说明的,就是在win10/i7环境,64位node 版本v16.20.2

创建项目

vite官方是直接支持创建electron项目的,所以,这里就简单很多了。我们已经不需要向开始那样自己去慢慢搭建

yarn create vite

这里使用yarn创建,当然也可以根据自己的喜好使用npm,但是不要使用pnpm,截至目前**【2024年5月26日】**,使用pnpm创建的electron项目,开发运行时没有问题,但是打包时,会报很多包找不到的错误。不信的可以自己试。如果有好的解决方案还烦请不吝赐教
如果使用npm命令是

npm create vite@latest

接下来我们继续看下一步。输入yarn create vite后回车,第一步是输入项目名称,默认是vite-project,这里我们使用默认,然后关键的是第二步:select a framework(选择一个框架),这里我们选择“Others",然后回车

在这里插入图片描述
接下来会有两个选项,我们选择”create-electron-vite“选项,即可
在这里插入图片描述
回车,现在就开始创建项目了。创建好之后,我们cd到项目目录,安装依赖

正确配置国内镜像

安装依赖时,electron的国内镜像要单独配置,也就是就算npm配置了registry=https://registry.npmmirror.com/也不行
这里要注意的一个坑是,不少伙伴会去网上搜索怎么配置electron的国内镜像,得到的答案可能是如下:
ELECTRON_MIRROR=“https://npm.taobao.org/mirrors/electron/”,包括electron官方目前也是这样子(const 目前=2024年5月24日)
在这里插入图片描述
如果是这样配置的镜像,安装依赖时,我们可能会得到一个类似错误,如下: Hostname/IP does not match certificate’s altnames: Host: npm.

Vue3 + Electron使用Vite打包时,可通过以下方法优化打包体积: ### 按需引入依赖 在`package.json`里,仅保留项目必需的依赖。像引用[2]中,要认真检查`dependencies`和`devDependencies`,去除不必要的依赖,避免打包时包含多余代码。 ```json { "dependencies": { "vue": "^3.4.29" }, "devDependencies": { "@vitejs/plugin-vue": "^5.0.5", "electron": "^31.2.0", "electron-packager": "^17.1.2", "typescript": "^5.2.2", "vite": "^5.3.1", "vue-tsc": "^2.0.21" } } ``` ### 代码分割 Vite具备代码分割功能,它能自动将代码分割成较小的块,在需要时再加载。在Vue组件里,可使用动态导入实现代码分割: ```vue <template> <div> <button @click="loadComponent">加载组件</button> <component :is="dynamicComponent"></component> </div> </template> <script setup> import { ref } from &#39;vue&#39;; const dynamicComponent = ref(null); const loadComponent = async () => { const { default: Component } = await import(&#39;./DynamicComponent.vue&#39;); dynamicComponent.value = Component; }; </script> ``` ### 压缩代码 Vite默认会在生产环境压缩代码,不过可进一步配置压缩选项。在`vite.config.js`里,可配置`build.minify`选项: ```javascript import { defineConfig } from &#39;vite&#39;; import vue from &#39;@vitejs/plugin-vue&#39;; export default defineConfig({ plugins: [vue()], build: { minify: &#39;terser&#39;, // 使用terser压缩代码 terserOptions: { compress: { drop_console: true, // 移除console语句 drop_debugger: true // 移除debugger语句 } } } }); ``` ### 图片优化 对项目中的图片进行优化,可降低图片体积。可使用图片压缩工具(如TinyPNG)压缩图片,或者使用响应式图片技术,依据设备屏幕大小加载不同分辨率的图片。 ### 去除不必要文件 在打包配置中,明确指定要包含的文件,排除不必要的文件。如引用[3]里,在`build.files`中指定仅包含必要的文件: ```json "files": [ "dist/**/*", "main.js", "preload.js" ] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值