build.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. const fs = require('fs')
  2. const { exec } = require('child_process')
  3. const { resolve, join } = require('path')
  4. const minimist = require('minimist')
  5. const args = minimist(process.argv.slice(2))
  6. const rootPath = join(__dirname, '..')
  7. const userOptions = {
  8. logo: args.logo === 'yes',
  9. package: args.package.split(','),
  10. platform: args.platform
  11. }
  12. console.log('读取脚本参数中 🤬')
  13. console.log(userOptions.logo ? '去掉logo...' : '保留logo...')
  14. console.log('打包' + userOptions.package + '等模块中')
  15. console.log('打包至' + userOptions.platform + '平台')
  16. const AppConfigFs = fs.readFileSync(resolve(rootPath, 'config/defaultSetting.ts'), 'utf8')
  17. if (userOptions.logo) {
  18. const AppConfigFsr =
  19. `export default {
  20. appName: '',
  21. userInfoHidden: true,
  22. documentIco: '',
  23. logoExpand: '',
  24. logoContract: '',
  25. logout: ''
  26. }
  27. `
  28. console.log('写入地址:', resolve(rootPath, 'config/defaultSetting.ts'))
  29. fs.writeFileSync(resolve(rootPath, 'config/defaultSetting.ts'), AppConfigFsr, 'utf-8')
  30. }
  31. const file = fs.readFileSync(resolve(rootPath, 'src/router/index.ts'), 'utf8')
  32. const r = file.replace(
  33. 'const _routes = [iot, schedule, view, lowcode, user, login]',
  34. `const _routes = ${userOptions.package}`
  35. )
  36. fs.writeFileSync(resolve(rootPath, 'src/router/index.ts'), r, 'utf-8')
  37. console.log('修改路由值成功 🌹')
  38. console.log('开始打包 📦')
  39. console.log('打包中...... 💪')
  40. if (userOptions.platform === 'web') {
  41. exec('npm run build', (error, stdout, stderr) => {
  42. if (error) {
  43. console.error(`执行脚本时出错:${error}`)
  44. fs.writeFileSync(resolve(rootPath, 'src/router/index.ts'), file, 'utf-8')
  45. userOptions.logo && fs.writeFileSync(resolve(rootPath, 'config/defaultSetting.ts'), AppConfigFs, 'utf-8')
  46. } else {
  47. console.log('打包成功 🎉')
  48. fs.writeFileSync(resolve(rootPath, 'src/router/index.ts'), file, 'utf-8')
  49. userOptions.logo && fs.writeFileSync(resolve(rootPath, 'config/defaultSetting.ts'), AppConfigFs, 'utf-8')
  50. }
  51. })
  52. } else {
  53. exec(`electron . ${userOptions.platform}`)
  54. }