当前位置: 首页 > Web前端 > vue.js

Vite开发插件如何生成.d.ts类型声明文件

时间:2023-03-31 23:39:43 vue.js

随着Vue3生态的不断扩大和成熟,Vue3从初期的尝鲜阶段进入了生产项目。其次是开发脚手架的更新,新的Vite脚手架,基于esbuild,利用go语言的性能优势,与Webpack相比,性能优势不是一个数量级。封装基于Rollup的扩展,继承了LuminousPluginApi的轻量和优点。什么,你还不知道?你应该快点。Vue3官方中文文档Vite官方中文文档废话不多说,开始吧。创建项目本文重点介绍如何生成类型声明文件,因此项目创建部分仅做简要说明。通过官方模板快速搭建一个简单的项目:yarncreate@vitejs/appmy-vue-app--templatevue-ts然后将src/main.ts重命名为src/index.ts并修改其内容:export{defaultasApp}from'./App.vue'不关心App的名字,我们只是假设我们写了一个组件并将其导出为一个插件。然后调整vite.config.ts的配置为库模式打包:{lib:{entry:resolve(__dirname,'src/index.ts'),name:'Plugin',formats:['es'],fileName:'index'}},plugins:[vue()]})至此,一个简单的插件工程就完成了。生成类型声明文件在开发Rollup插件时,我们主要使用插件rollup-plugin-typescript2,根据源码生成.d.ts声明文件。但是,这个插件有几个问题。一是无法解析.vue文件,二是在Vite+Vue3的环境下不兼容(三是Vite内部支持typescript,插件有很多重复功能)。这不是很可靠。当然,在issue中也有人希望Vite内部支持库模式打包时导出声明文件,但Vite官方表示不希望这样增加维护的负担和结构的复杂性。因此,在Vite的开发中,我们不得不寻找一些其他的方式来生成声明文件。本文介绍的生成方式还是依赖于一些现成的库,然后使用一些编程脚本来达到目的。毕竟从包装原理出发,篇幅未必够用。安装用于生成声明文件的库:yarnaddts-morph-D其实.vue文件生成类型声明文件的核心点就是提取