feat(@vant/cli): generate type declaration for sfc (#9675)

This commit is contained in:
neverland
2021-10-14 14:44:21 +08:00
committed by GitHub
parent 66cf1dabba
commit 7eb9344446
3 changed files with 41 additions and 30 deletions
@@ -0,0 +1,34 @@
import { sep } from 'path';
import { transformAsync } from '@babel/core';
import { readFileSync, removeSync, outputFileSync } from 'fs-extra';
import { replaceExt } from '../common';
import { replaceCSSImportExt } from '../common/css';
import { replaceScriptImportExt } from './get-deps';
export async function compileScript(filePath: string): Promise<void> {
return new Promise((resolve, reject) => {
if (filePath.includes('.d.ts')) {
resolve();
return;
}
let code = readFileSync(filePath, 'utf-8');
if (!filePath.includes(`${sep}style${sep}`)) {
code = replaceCSSImportExt(code);
}
code = replaceScriptImportExt(code, '.vue', '');
transformAsync(code, { filename: filePath })
.then((result) => {
if (result) {
const jsFilePath = replaceExt(filePath, '.js');
removeSync(filePath);
outputFileSync(jsFilePath, result.code);
resolve();
}
})
.catch(reject);
});
}