build_min.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date
  7. * @version
  8. */
  9. const Uglyfy = require('uglify-es');
  10. const fs = require('fs');
  11. const JsFiles = require('./config/web');
  12. const version = require('./config/config.default')({ baseDir: __dirname + '/app', root: __dirname, name: 'calc' }).version;
  13. console.log(version);
  14. const savePath = __dirname + '/app' + JsFiles.webPath;
  15. if (!fs.existsSync(savePath)) fs.mkdirSync(savePath);
  16. for (const c in JsFiles.controller) {
  17. const controller = JsFiles.controller[c];
  18. for (const a in controller) {
  19. const action = controller[a];
  20. if (action.mergeFiles && action.mergeFile.length > 0) {
  21. const minFileName = savePath + action.mergeFile + '.' + version + '.min.js';
  22. console.log(minFileName);
  23. let code = '';
  24. for (const f of action.mergeFiles) {
  25. code = code + fs.readFileSync(__dirname + '/app' + f, 'utf8');
  26. }
  27. fs.writeFileSync(minFileName, Uglyfy.minify(code, { mangle: true }).code);
  28. }
  29. }
  30. }
  31. let needMinCode = '';
  32. for (const nm of JsFiles.needMin) {
  33. needMinCode = needMinCode + fs.readFileSync(__dirname + '/app' + nm, 'utf8');
  34. }
  35. const needMinFileName = __dirname + '/app/public/js/web/global.' + version + '.min.js';
  36. fs.writeFileSync(needMinFileName, Uglyfy.minify(needMinCode, { mangle: true }).code);
  37. const needVersionCss = ['/public/css/main'];
  38. for (const nvc of needVersionCss) {
  39. fs.copyFileSync(__dirname + '/app' + nvc + '.css', __dirname + '/app' + nvc + '.' + version + '.css');
  40. }