generate-types-taro.js 924 B

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