generate-themes.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. const config = require('../src/config.json');
  2. const path = require('path');
  3. const fs = require('fs-extra');
  4. let sassFileStr = ``;
  5. let tasks = [];
  6. config.nav.map((item) => {
  7. item.packages.forEach((element) => {
  8. let folderName = element.name.toLowerCase();
  9. tasks.push(
  10. fs
  11. .copy(
  12. path.resolve(__dirname, `../src/packages/__VUE/${folderName}/index.scss`),
  13. path.resolve(__dirname, `../dist/packages/${folderName}/index.scss`)
  14. )
  15. .then((success) => {
  16. sassFileStr += `@import '../../packages/${folderName}/index.scss';\n`;
  17. })
  18. .catch((error) => {})
  19. );
  20. });
  21. });
  22. tasks.push(fs.copy(path.resolve(__dirname, '../src/packages/styles'), path.resolve(__dirname, '../dist/styles')));
  23. Promise.all(tasks).then((res) => {
  24. let themes = [
  25. { file: 'default.scss', sourcePath: `@import '../variables.scss';` },
  26. { file: 'jdt.scss', sourcePath: `@import '../variables-jdt.scss';` },
  27. { file: 'jdb.scss', sourcePath: `@import '../variables-jdb.scss';` }
  28. ];
  29. themes.forEach((item) => {
  30. fs.outputFile(
  31. path.resolve(__dirname, `../dist/styles/themes/${item.file}`),
  32. `${item.sourcePath}
  33. ${sassFileStr}`,
  34. 'utf8',
  35. (error) => {
  36. // logger.success(`文件写入成功`);
  37. }
  38. );
  39. });
  40. });