vue-webpack代码混淆、代码压缩设置

news/2024/10/22 7:36:19/

package.json

"dependencies": {"webpack": "^4.41.3" // webpack版本"webpack-obfuscator": "^2.6.0" // 代码混淆版本"compression-webpack-plugin": "6.1.1", // 代码压缩版本
}

webpack.config.prod.js

const JavaScriptObfuscator = require('webpack-obfuscator');
const CompressionPlugin = require('compression-webpack-plugin');
config: {...plugins: [// 代码混淆new JavaScriptObfuscator({// 压缩代码compact: true,// 关键字转义unicodeEscapeSequence: true}, []),new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),//该插件能够使得指定目录被忽略,从而使得打包变快,文件变小new CompressionPlugin({filename: "[path][base].gz", // 有的版本是[path].gz[query] 根据情况而定algorithm: "gzip",test: new RegExp("\\.(" + productionGzipExtensions.join("|") + ")$"),threshold: 10240, // 只有大小大于该值的资源会被处理 10240minRatio: 1, // 只有压缩率小于这个值的资源才会被处理deleteOriginalAssets: true, // 删除原文件,如果删除源文件nginx中需要额外配置资源目录}),new webpack.optimize.LimitChunkCountPlugin({maxChunks: 5, //控制打包生成js的个数minChunkSize: 100})],
}

代码混淆 JavaScriptObfuscator

详情 JavaScript Obfuscator Tool 可以在这个网站测试自己需要的混淆方式

  plugins: [// 代码混淆new JavaScriptObfuscator({// 压缩代码compact: true,// 关键字转义unicodeEscapeSequence: true}, []),],

代码压缩 CompressionPlugin

  const productionGzipExtensions = ["js", "css"];  plugins: [new CompressionPlugin({filename: "[path][base].gz", // 有的版本是[path].gz[query] 根据情况而定algorithm: "gzip",test: /\.(js|css)(\?.*)?$/i,// threshold: 10240, 只有大小大于10K的资源会被压缩,默认为0minRatio: 1, //默认为0.8,能压缩到小于等于原来的80%才压缩deleteOriginalAssets: true, // 删除原文件,如果删除源文件nginx中需要额外配置资源目录}),],

代码压缩后Nginx配置

压缩为gz包后,是否删除源js文件,如果设置为true nginx需要额外配置资源文件目录

http {....gzip on; # 开启gizp文件支持gzip_min_length 1k;gzip_comp_level 9;gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;gzip_vary on;gzip_disable "MSIE [1-6]\.";server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   D:/workspace/dmp/dmp-service/dolphinscheduler-ui/dist;index  index.html index.htm;gzip_static on; #查找静态文件,删除源文件后需要添加}}
}


http://www.ppmy.cn/news/1002078.html

相关文章

【第一阶段】kotlin语言的String模板

1.在Java中拼接字符串使用的是“” 2.在kotlin中使用"${}" 3.kotlin语言中if是表达式,更灵活 fun main() {val city"西安"val time24//java中写法println("我在"city"玩了"time"小时")//kotlin中写法&#xff0…

回归预测 | MATLAB实现SO-CNN-GRU蛇群算法优化卷积门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现SO-CNN-GRU蛇群算法优化卷积门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现SO-CNN-GRU蛇群算法优化卷积门控循环单元多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现SO-CNN-GRU蛇群算法优化卷积门控循…

ES6之Promise、Class类与模块化(Modules)

目录 PromiseClass类extendssuper Modules 模块系统export default 和对应importexport 和 import Promise Promise 是 ES6 引入的一种用于处理异步操作的对象。 它解决了传统回调函数(callback)模式中容易出现的回调地狱和代码可读性差的问题。 Promis…

Maven里面没有plugins dependence问题解决

说明:今天在做Nacos、Dubbo整合的时候,在父模块中做了版本限制,出错后就又把版本控制什么都删掉,回退到最开始的状态,此时父模块下面的服务右侧的 maven里面没有plugins dependence ,然后项目全都报错。 问…

算法通关村—迭代实现二叉树的前序,中序,后序遍历

1. 前序中序后序递归写法 前序 public void preorder(TreeNode root, List<Integer> res) {if (root null) {return;}res.add(root.val);preorder(root.left, res);preorder(root.right, res);}后序 public static void postOrderRecur(TreeNode head) {if (head nu…

20230803 linux信号量sem sem_init(sem_t* m_sem,0,0)

信号量及一切定义为指针类型的变量使用前一定要先new 一个实例化对象将地址给该指针&#xff0c;否则指针没有确定的地址&#xff0c;运行后直接访问该错误地址报段错误。 信号量使用参考&#xff1a; linux 多线程之信号量 sem_init 有名信号量sem_open和内存信号量sem_init…

5、二叉树

二叉树遍历 递归序 public static void f(Node head) {if (head == null) {return;}f(head.left);f(head.right); }前中后遍历_递归 public static void preOrderRecur(Node head) {if (head == null) {return;}System.out.print(head.value + " ");preOrderRecur…

【EI/SCOPUS征稿】第三届智能电网与能源互联网国际会议(SGEI 2023)

第三届智能电网与能源互联网国际会议&#xff08;SGEI 2023&#xff09; 2023 3rd International Conference on Smart Grid and Energy Internet 为交流近年来国内外在智能电网和能源互联网领域的理论、技术和应用的最新进展&#xff0c;展示最新成果&#xff0c;2023年第三…