从零开始开发一个Vite插件
笔特 | 11/26/2022, 1:44:39 AM | 1630 次阅读
1 简介
使用vite开发Vue库项目编译需要生成d.ts声明文件以支持ts调用的语法提示,故此编写该组件用来简化d.ts声明文件生成的过程。
2 开发
新建文件夹
mkdir vite-plugin-build-types
cd vite-plugin-build-types
2.1 初始化npm
npm init -y
2.2 添加依赖
yarn add -D vite typescript @types/node rimraf @babel/types
yarn add path fs fast-glob ts-morph @vue/compiler-sfc
2.3 添加命令
{
“main”: “dist/index.js”,
“type”: “module”,
“types”: “dist/index.d.ts”,
“typings”: “dist/index.d.ts”,
“scripts”: {
“dev”: “tsc -w -p .”,
“build”: “rimraf dist && tsc -p .”
},
}
2.3 编码
新建文件src/index.ts
源码地址:https://gitee.com/bitem/vite-plugin-build-types
2.4 开发时建立npm软连接
建立软连接使得可以再不发布的情况下直接在其他项目中引入
npm link
1
3 其他项目使用
3.1 引入软连接
npm link vite-plugin-build-types
1
// vite.config.ts
// 无关代码省略,仅保留关键代码
import VitePluginBuildTypes from "vite-plugin-build-types"
export default defineConfig({
build: {
// 如果下方插件配置的aim目录与vite编译输出目录一致,则必须配置该项为false,目录不一致,则不需该配置
emptyOutDir: false,
rollupOptions: {
plugins: [
VitePluginBuildTypes({
// 项目根目录
root: path.resolve(__dirname),
// 源代码目录 string | string[]
source: path.resolve(__dirname, "src"),
// 输出目录
aim: path.resolve(__dirname, "dist")
})
]
}
// build end
}
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
4 发布
yarn publish
1
5 正式使用
yarn add -D vite-plugin-build-types
1
NPM包地址:https://www.npmjs.com/package/vite-plugin-build-types