diff --git a/src/cli.ts b/src/cli.ts
index 1d3a228..cba75e8 100644
--- a/src/cli.ts
+++ b/src/cli.ts
@@ -7,9 +7,10 @@ const cli = cac('vue-dts-gen')
cli
.command('[...vue files]', 'Generate .d.ts for .vue files')
.option('--outDir
', 'Output directory')
- .action(async (input, flags: { outDir?: string }) => {
+ .option('--tsconfig ','specified tsconfig.json with absolute path')
+ .action(async (input, flags: { outDir?: string,tsconfig?:string }) => {
const { build } = await import('./')
- await build({ input, outDir: flags.outDir })
+ await build({ input, outDir: flags.outDir,tsconfig:flags.tsconfig })
})
cli.version(version)
diff --git a/src/index.ts b/src/index.ts
index 7e4d56e..ee0f416 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -6,6 +6,7 @@ import glob from 'fast-glob'
export type Options = {
input: string | string[]
outDir?: string
+ tsconfig?:string
}
let vueCompiler: typeof import('@vue/compiler-sfc')
@@ -25,11 +26,30 @@ const getVueCompiler = () => {
return vueCompiler
}
-export async function build({ input, outDir }: Options) {
+export async function build({ input, outDir,tsconfig }: Options) {
const vueCompiler = getVueCompiler()
- const tsConfigFilePath = fs.existsSync('tsconfig.json')
- ? 'tsconfig.json'
- : undefined
+ if (Array.isArray(input)) {
+ input = input.map((v)=>{
+ v=v.split(path.sep).join('/');
+ return v;
+ })
+ }
+ else{
+ input = input.split(path.sep).join('/')
+ }
+ let tsConfigFilePath:string|undefined
+ if (tsconfig){
+ tsConfigFilePath = tsconfig
+ if (!fs.existsSync(tsConfigFilePath)) {
+ tsConfigFilePath = undefined
+ }
+ tsConfigFilePath ? console.log('Using tsconfig:',tsConfigFilePath):console.log('tsconfig don\'t exist');
+ }
+ else {
+ tsConfigFilePath = fs.existsSync('tsconfig.json')
+ ? 'tsconfig.json'
+ : undefined
+ }
const project = new Project({
compilerOptions: {
allowJs: true,