generate-types-taro.js 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. const config = require('../src/config.json');
  2. const package = require('../package.json');
  3. const path = require('path');
  4. const fs = require('fs-extra');
  5. let importStr = `import Locale from '../packages/locale';\n`;
  6. const packages = [];
  7. config.nav.map((item) => {
  8. item.packages.forEach((element) => {
  9. let { name } = element;
  10. const filePath = path.join(`./src/packages/__VUE/${name.toLowerCase()}/index.taro.vue`);
  11. importStr += `import ${name} from './__VUE/${name.toLowerCase()}/${
  12. fs.existsSync(filePath) ? 'index.taro.vue' : 'index.vue'
  13. }';\n`;
  14. packages.push(name);
  15. });
  16. });
  17. let installFunction = `
  18. export { Locale,${packages.join(',')} };`;
  19. let fileStr = importStr + installFunction;
  20. fs.outputFileSync(path.resolve(__dirname, '../dist/types/nutui.d.ts'), fileStr, 'utf8');
  21. fs.outputFileSync(
  22. path.resolve(__dirname, '../dist/types/index.d.ts'),
  23. `declare namespace _default {
  24. export { install };
  25. export { version };
  26. }
  27. export function install(app: any): void;
  28. export const version: '${package.version}';
  29. export default _default;
  30. export * from './nutui';`,
  31. 'utf8'
  32. );