0.1.1 • Published 6 days ago

@vrx-volar/dts v0.1.1

Weekly downloads
-
License
MIT
Repository
-
Last release
6 days ago

@vrx-volar/dts

该包处于实验阶段,不建议直接使用在生产环境

为解决 使用 vue-tsc 内部 API 生成 .d.ts 文件时,

由于vue-tsc内部 API 变更过于频繁,

无法基于 semver 规范宽松匹配 vue-tsc 版本的问题。

基于 vue-tsc >=2.0.19 封装

如果部分 volar 插件无法正确的加载,可能是 该 volar 插件未适配 vue/language-tools 2.x.x 的更新

安装

npm i @vrx-volar/dts
yarn add @vrx-volar/dts
pnpm add @vrx-volar/dts
bun add @vrx-volar/dts

createProject

根据 minimatch 规则匹配项目文件,并为其转换对应 .d.ts 文件

import { createProject, writeTypes } from '@vrx-volar/dts'

const { files } = await createProject({
  match: ['**/*.vue', '**/*.?({m,c}){ts,js}?(x)'],
  globbyOptions: { 
    absolute: true,
    onlyFiles: true,
  },
})

// 项目入口文件夹
const inputDir = join(process.cwd(),'src')
// 项目出口文件夹
const outDir = join(process.cwd(),'dist')
// 将 转换的结果写入文件系统
await writeTypes(inputDir,outDir,files)
// 自定义写入时的后缀名
// 在该例子下生成 *.d.ts *.d.mts
await writeTypes(inputDir,outDir,files,['.d.ts','.d.mts'])
// 自定义写入时的后缀名
// 在该例子下仅生成 *.d.mts
await writeTypes(inputDir,outDir,files,['.d.mts'])

rollupTypes

将文件夹下所有.d.ts,合并到指定入口.d.ts 文件中,并删除文件夹下其余所有 .d.ts 文件

import { createProject, write } from '@vrx-volar/dts'

const { files } = await createProject({
  match: ['**/*.vue', '**/*.?({m,c}){ts,js}?(x)'],
  globbyOptions: { 
    absolute: true,
    onlyFiles: true,
  },
})

// 项目入口文件夹
const inputDir = join(process.cwd(),'src')
// 项目出口文件夹
const outDir = join(process.cwd(),'dist')
// 将 转换的结果写入文件系统
await write(inputDir,outDir,files)
// 将所有.d.ts 集合到 index.d.ts 文件中
await rollupTypes('index.d.ts',outDir)
// 自定义写入时的后缀名
// 在该例子下生成 index.d.ts index.d.mts
await rollupTypes('index.d.ts',outDir,['.d.ts','.d.mts'])
// 自定义写入时的后缀名
// 在该例子下仅生成 index.d.mts
await rollupTypes('index.d.ts',outDir,['.d.mts'])

cleanTypes

删除指定目录下所有的 .d.ts 文件

import { cleanTypes } from '@vrx-volar/dts'

await cleanTypes(outDir)

其余 API 请参照 @vrx-volar/tsc

0.1.1

6 days ago

0.1.0

8 days ago

0.0.2

29 days ago