build.js 2.0 KB

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