const config = require('../src/config.json'); const path = require('path'); const fs = require('fs'); let importStr = `import { App } from 'vue'; declare class UIComponent { static install(vue: App): void; }\n`; const packages = []; config.nav.map(item => { item.packages.forEach(element => { let { name, show } = element; if (show) { importStr += `declare class ${name} extends UIComponent {}\n`; packages.push(name); } }); }); let installFunction = ` export interface InstallationOptions { locale?: any; lang?: any; } declare function install(app: App, options?: InstallationOptions): void; export { ${packages.join(',')} }; declare const _default: { install: typeof install; version: string; }; export default _default;`; let fileStr = importStr + installFunction; fs.writeFile( path.resolve(__dirname, '../dist/nutui.d.ts'), fileStr, 'utf8', error => { console.log(error); // logger.success(`${package_config_path} 文件写入成功`); } ); fs.writeFile( path.resolve(__dirname, '../dist/index.d.ts'), `import * as NutUI from './nutui'; export default NutUI; export * from './nutui';`, 'utf8', error => { // logger.success(`${package_config_path} 文件写入成功`); } );