code_compress.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. 'use strict';
  2. const path = require('path');
  3. const fs = require('fs');
  4. const fsPro = require('fs-extra');
  5. const UglifyJS = require('uglify-js');
  6. console.log('[electron] [code_compress] moving frontend asset to egg public dir');
  7. console.log('[electron] [code_compress] start');
  8. class codeCompress {
  9. constructor(options = {}) {
  10. this.dirs = [
  11. 'app',
  12. 'electron'
  13. ];
  14. }
  15. /**
  16. * 备份 app、electron目录代码
  17. */
  18. backup () {
  19. if (!this.fileExist(sourceIndexFile)) {
  20. console.log('[electron] [replace_dist] ERROR source dir is empty!!!');
  21. return
  22. }
  23. }
  24. /**
  25. * 检查文件是否存在
  26. */
  27. fileExist (filePath) {
  28. try {
  29. return fs.statSync(filePath).isFile();
  30. } catch (err) {
  31. return false;
  32. }
  33. };
  34. }
  35. // argv
  36. let distDir = '';
  37. for (let i = 0; i < process.argv.length; i++) {
  38. const tmpArgv = process.argv[i]
  39. if (tmpArgv.indexOf('--dist_dir=') !== -1) {
  40. distDir = tmpArgv.substr(11)
  41. }
  42. }
  43. const sourceDir = path.normalize(distDir);
  44. const targetDir = path.normalize('./app/public');
  45. const sourceIndexFile = path.normalize(sourceDir + '/index.html');
  46. const targetIndexFile = path.normalize( './app/view/index.ejs');
  47. if (!fileExist(sourceIndexFile)) {
  48. console.log('[electron] [replace_dist] ERROR source dir is empty!!!');
  49. return
  50. }
  51. console.log('[electron] [replace_dist] delete target dir:', targetDir);
  52. fs.rmdirSync(targetDir, {recursive: true});
  53. console.log('[electron] [replace_dist] copy :', sourceDir);
  54. fsPro.copySync(sourceDir, targetDir);
  55. // replace ejs
  56. fsPro.copySync(sourceIndexFile, targetIndexFile);
  57. console.log('[electron] [replace_dist] replace index.ejs');
  58. console.log('[electron] [replace_dist] end');