app.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. 'use strict';
  2. /**
  3. * 自定义启动文件
  4. *
  5. * @author Mai
  6. * @date 2018/4/18
  7. * @version
  8. */
  9. // js文件加密相关
  10. const Uglyfy = require('uglify-es');
  11. const fs = require('fs');
  12. // 基类
  13. const BaseController = require('./app/base/base_controller');
  14. const BaseService = require('./app/base/base_service');
  15. // 常量
  16. const libConst = require('./app/const/lib');
  17. const nodeConst = require('./app/const/template_node');
  18. const paramConst = require('./app/const/template_param');
  19. module.exports = app => {
  20. // app内定义基类,方便继承
  21. app.BaseController = BaseController;
  22. app.BaseService = BaseService;
  23. // app内定义所有所需常量
  24. app.libConst = libConst;
  25. app.nodeConst = nodeConst;
  26. app.paramConst = paramConst;
  27. app.awaitRefresh = [];
  28. //压缩前端js
  29. if (app.config.min) {
  30. app.minify = (file) => {
  31. const files = file instanceof Array ? file : [file];
  32. for (const f of files) {
  33. const fileName = app.baseDir + '/app/public/js/' + f;
  34. const code = fs.readFileSync(fileName, 'utf8');
  35. fs.writeFileSync(fileName.replace('.js', '.min.js'), Uglyfy.minify(code, { mangle: true }).code);
  36. }
  37. };
  38. app.minify(['spreadjs_rela/spreadjs_zh.js', 'spreadjs_rela/extend_celltype.js', 'path_tree.js', 'compare.js', 'cookies.js', 'lib_detail.js', 'template.js']);
  39. }
  40. };