replaceEnv.mjs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import * as fs from 'fs'
  2. import path from 'path'
  3. import getAppInfo from "./config/id.config.mjs";
  4. // 同步读取文件内容
  5. function readFileSync(filePath) {
  6. return fs.readFileSync(filePath, 'utf8');
  7. }
  8. // 同步写入文件内容
  9. function writeFileSync(filePath, data) {
  10. fs.writeFileSync(filePath, data, 'utf8');
  11. }
  12. // 替换文件中的文本
  13. function replaceTextInFileSync(filePath, matchKey, str, templateFilePath) {
  14. try {
  15. // 读取文件内容
  16. let fileContent = readFileSync(templateFilePath || filePath);
  17. // 替换文本
  18. const newContent = fileContent.replaceAll(matchKey, str);
  19. // 写入新内容到文件
  20. writeFileSync(filePath, newContent);
  21. console.log('环境文本替换:', `${matchKey} ===> ${str}`);
  22. } catch (error) {
  23. console.error('文本替换失败:', error);
  24. }
  25. }
  26. function replaceStyle (color) {
  27. replaceTextInFileSync(path.resolve('./src/assets/env_style/scss.scss'), '#2ABED1', color, path.resolve('./script/template/env_style/scss.scss'))
  28. replaceTextInFileSync(path.resolve('./src/assets/env_style/less.less'), '#2ABED1', color, path.resolve('./script/template/env_style/less.less'))
  29. }
  30. function replaceAppConfig (data) {
  31. replaceTextInFileSync(path.resolve('./project-config/index.js'), 'const appConfig = {}', `const appConfig = ${JSON.stringify(data)}`, path.resolve('./script/template/project-config.js'))
  32. }
  33. export function replaceEnvCode (appCode) {
  34. const appInfo = getAppInfo(appCode)
  35. // 替换AppId、Tabbar、图标、全部商机列表配置
  36. replaceAppConfig(appInfo)
  37. // 替换主题色
  38. replaceStyle(appInfo.projectInfo.themeColor)
  39. // 替换请求域名、资源域名
  40. }