Browse Source

前端代码压缩

MaiXinRong 7 years ago
parent
commit
1df1c9a1f9

+ 16 - 1
app.js

@@ -7,7 +7,9 @@
  * @date 2018/4/18
  * @version
  */
-
+// js文件加密相关
+const Uglyfy = require('uglify-es');
+const fs = require('fs');
 // 基类
 const BaseController = require('./app/base/base_controller');
 const BaseService = require('./app/base/base_service');
@@ -23,4 +25,17 @@ module.exports = app => {
     app.libConst = libConst;
     app.nodeConst = nodeConst;
     app.paramConst = paramConst;
+
+    //压缩前端js
+    if (app.config.min) {
+        app.minify = (file) => {
+            const files = file instanceof Array ? file : [file];
+            for (const f of files) {
+                const fileName = app.baseDir + '/app/public/js/' + f;
+                const code = fs.readFileSync(fileName, 'utf8');
+                fs.writeFileSync(fileName.replace('.js', '.min.js'), Uglyfy.minify(code, { mangle: true }).code);
+            }
+        };
+        app.minify(['spreadjs_rela/spreadjs_zh.js', 'spreadjs_rela/extend_celltype.js', 'path_tree.js', 'compare.js', 'cookies.js', 'lib_detail.js', 'template.js']);
+    }
 }

+ 2 - 0
app/base/base_controller.js

@@ -37,9 +37,11 @@ class BaseController extends Controller {
         data.moment = moment;
 
         try {
+            data.min = this.app.config.min ? '.min' : '';
             const contentString = await this.ctx.renderView(view, data);
             const modalString = modal === '' ? '' : await this.ctx.renderView(modal, data);
             const renderData = {
+                min: this.app.config.min ? '.min' : '',
                 content: contentString,
                 modal: modalString,
             };

File diff suppressed because it is too large
+ 1 - 1
app/public/js/path_tree.min.js


File diff suppressed because it is too large
+ 1 - 1
app/public/js/spreadjs_rela/extend_celltype.min.js


File diff suppressed because it is too large
+ 1 - 1
app/public/js/spreadjs_rela/spreadjs_zh.min.js


+ 2 - 2
app/view/compare/index.ejs

@@ -33,5 +33,5 @@
 <script>
     GC.Spread.Sheets.LicenseKey = "559432293813965#A0y3iTOzEDOzkjMyMDN9UTNiojIklkI1pjIEJCLi4TPB9mM5AFNTd4cvZ7SaJUVy3CWKtWYXx4VVhjMpp7dYNGdx2ia9sEVlZGOTh7NRlTUwkWR9wEV4gmbjBDZ4ElR8N7cGdHVvEWVBtCOwIGW0ZmeYVWVr3mI0IyUiwCMzETN8kzNzYTM0IicfJye&Qf35VfiEzRwEkI0IyQiwiIwEjL6ByUKBCZhVmcwNlI0IiTis7W0ICZyBlIsIyNyMzM5ADI5ADNwcTMwIjI0ICdyNkIsIibj9SbvNmL4N7bjRnch56ciojIz5GRiwiI8+Y9sWY9QmZ0Jyp96uL9v6L0wap9biY9qiq95q197Wr9g+89iojIh94Wiqi";
 </script>
-<script src="/public/js/spreadjs_rela/spreadjs_zh.js"></script>
-<script src="/public/js/compare.js"></script>
+<script src="/public/js/spreadjs_rela/spreadjs_zh<%= min %>.js"></script>
+<script src="/public/js/compare<%= min %>.js"></script>

+ 1 - 1
app/view/layout/layout.ejs

@@ -68,7 +68,7 @@
     </div>
 </div>
 <%- modal %>
-<script src="/public/js/cookies.js"></script>
+<script src="/public/js/cookies<%= min %>.js"></script>
 <script src="/public/js/global.js"></script>
 <script type="text/javascript">
     autoFlashHeight();

+ 4 - 4
app/view/lib/detail.ejs

@@ -80,10 +80,10 @@
 <script>
     GC.Spread.Sheets.LicenseKey = "559432293813965#A0y3iTOzEDOzkjMyMDN9UTNiojIklkI1pjIEJCLi4TPB9mM5AFNTd4cvZ7SaJUVy3CWKtWYXx4VVhjMpp7dYNGdx2ia9sEVlZGOTh7NRlTUwkWR9wEV4gmbjBDZ4ElR8N7cGdHVvEWVBtCOwIGW0ZmeYVWVr3mI0IyUiwCMzETN8kzNzYTM0IicfJye&Qf35VfiEzRwEkI0IyQiwiIwEjL6ByUKBCZhVmcwNlI0IiTis7W0ICZyBlIsIyNyMzM5ADI5ADNwcTMwIjI0ICdyNkIsIibj9SbvNmL4N7bjRnch56ciojIz5GRiwiI8+Y9sWY9QmZ0Jyp96uL9v6L0wap9biY9qiq95q197Wr9g+89iojIh94Wiqi";
 </script>
-<script src="/public/js/spreadjs_rela/spreadjs_zh.js"></script>
-<script src="/public/js/spreadjs_rela/extend_celltype.js"></script>
-<script src="/public/js/path_tree.js"></script>
+<script src="/public/js/spreadjs_rela/spreadjs_zh<%= min %>.js"></script>
+<script src="/public/js/spreadjs_rela/extend_celltype<%= min %>.js"></script>
+<script src="/public/js/path_tree<%= min %>.js"></script>
 <script type="text/javascript">
     const bills = JSON.parse('<%- billsData %>');
 </script>
-<script src="/public/js/lib_detail.js"></script>
+<script src="/public/js/lib_detail<%= min %>.js"></script>

+ 1 - 1
app/view/template/modal.ejs

@@ -95,4 +95,4 @@
         { code: ')', name: ')'}
     ];
 </script>
-<script src="/public/js/template.js"></script>
+<script src="/public/js/template<%= min %>.js"></script>

+ 3 - 0
config/config.default.js

@@ -56,5 +56,8 @@ module.exports = appInfo => {
         fileSize: '10mb',
     };
 
+    // 是否压缩替换前端js
+    config.min = true;
+
     return config;
 };

+ 3 - 0
config/config.local.js

@@ -56,5 +56,8 @@ module.exports = appInfo => {
         fileSize: '10mb',
     };
 
+    // 是否压缩替换前端js
+    config.min = false;
+
     return config;
 };

+ 3 - 0
config/config.qa.js

@@ -56,5 +56,8 @@ module.exports = appInfo => {
         fileSize: '10mb',
     };
 
+    // 是否压缩替换前端js
+    config.min = false;
+
     return config;
 };

+ 2 - 1
package.json

@@ -14,7 +14,8 @@
     "mathjs": "^4.1.2",
     "node-xlsx": "^0.12.0",
     "stream-to-array": "^2.3.0",
-    "stream-wormhole": "^1.0.3"
+    "stream-wormhole": "^1.0.3",
+    "uglify-es": "^3.3.9"
   },
   "devDependencies": {
     "autod": "^3.0.1",