update.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import fs from 'node:fs';
  2. import { exec } from 'node:child_process';
  3. // 封装函数,传入版本号,需要修改的 package.json 中的 devDependencies 的 key 值,需要修改的文件路径,直接修改 package.json 并重新写入
  4. // Encapsulate the function, pass in the version number, the key value of devDependencies in package.json that needs to be modified, the file path that needs to be modified, and directly modify package.json and rewrite
  5. const updatePackageJson = (version, key, path) => {
  6. const packageJson = JSON.parse(fs.readFileSync(path, 'utf-8'));
  7. // 如果 packageJson.devDependencies 中有 key 值,则更新为最新版本
  8. // If packageJson.devDependencies has the key value, update it to the latest version
  9. if (packageJson.devDependencies[key]) {
  10. packageJson.devDependencies[key] = `^${version}`;
  11. fs.writeFileSync(path, JSON.stringify(packageJson, null, 4));
  12. console.log(`🎉 ${path} 的 ${key} 更新成功`);
  13. } else {
  14. console.log(`⚠️ ${path} 中没有 ${key} 依赖`);
  15. }
  16. };
  17. // 获取 stdf 最新版本
  18. // Get the latest version of stdf
  19. exec('npm show stdf version', (error, stdout, stderr) => {
  20. if (error) {
  21. console.error(`执行命令出错:${error.message}`);
  22. return;
  23. }
  24. if (stderr) {
  25. console.error(`命令错误:${stderr}`);
  26. return;
  27. }
  28. const version = stdout.trim();
  29. console.log(`👉 stdf 最新版本:${version}`);
  30. // 更新模板中的 package.json 的 stdf 版本号
  31. // Update the stdf version number in the template package.json
  32. updatePackageJson(version, 'stdf', 'templates/skti/package.json');
  33. updatePackageJson(version, 'stdf', 'templates/skts/package.json');
  34. updatePackageJson(version, 'stdf', 'templates/sktsi/package.json');
  35. updatePackageJson(version, 'stdf', 'templates/sktti/package.json');
  36. updatePackageJson(version, 'stdf', 'templates/sktts/package.json');
  37. updatePackageJson(version, 'stdf', 'templates/skttsi/package.json');
  38. });
  39. // 获取 rollup-plugin-stdf-icon 最新版本
  40. // Get the latest version of rollup-plugin-stdf-icon
  41. exec('npm show rollup-plugin-stdf-icon version', (errorIcon, stdoutIcon, stderrIcon) => {
  42. if (errorIcon) {
  43. console.error(`执行命令出错:${errorIcon.message}`);
  44. return;
  45. }
  46. if (stderrIcon) {
  47. console.error(`命令错误:${stderrIcon}`);
  48. return;
  49. }
  50. const version = stdoutIcon.trim();
  51. console.log(`👉 rollup-plugin-stdf-icon 最新版本:${version}`);
  52. // 更新模板中的 package.json 的 rollup-plugin-stdf-icon 版本号
  53. // Update the rollup-plugin-stdf-icon version number in the template package.json
  54. updatePackageJson(version, 'rollup-plugin-stdf-icon', 'templates/skti/package.json');
  55. updatePackageJson(version, 'rollup-plugin-stdf-icon', 'templates/skts/package.json');
  56. updatePackageJson(version, 'rollup-plugin-stdf-icon', 'templates/sktsi/package.json');
  57. updatePackageJson(version, 'rollup-plugin-stdf-icon', 'templates/sktti/package.json');
  58. updatePackageJson(version, 'rollup-plugin-stdf-icon', 'templates/sktts/package.json');
  59. updatePackageJson(version, 'rollup-plugin-stdf-icon', 'templates/skttsi/package.json');
  60. });