当前位置: 首页 > news >正文

网站用户 分析宁波网站建设联系电话查询

网站用户 分析,宁波网站建设联系电话查询,做任务领积分兑换别的网站上的会员,福州网站推广优化找了一圈加密的方法发现大部分都是会把项目依赖进行加密,实际需求项目依赖是不需要加密的,只有自己写的代码才需要,所以这边手搓了一个插件进行文件简单加密,体积增加的不多,当然也保留了自定义配置。 插件代码如下&am…

找了一圈加密的方法发现大部分都是会把项目依赖进行加密,实际需求项目依赖是不需要加密的,只有自己写的代码才需要,所以这边手搓了一个插件进行文件简单加密,体积增加的不多,当然也保留了自定义配置

插件代码如下:

import javascriptObfuscator from "javascript-obfuscator";const defaultConfig = {compact: true, // 压缩代码controlFlowFlattening: false, // 控制流扁平化deadCodeInjection: false, // 死代码注入 会导致包体积变大debugProtection: true, // 调试保护debugProtectionInterval: 0, // 调试保护间隔disableConsoleOutput: true, // 禁用控制台输出identifierNamesGenerator: "mangled-shuffled", // 标识符名称生成器 hexadecimal(十六进制) mangled(短标识符)log: false, // 是否显示日志numbersToExpressions: false, // 数字转换为表达式renameGlobals: false, // 重命名全局变量selfDefending: true, // 自我防御simplify: true, // 简化代码splitStrings: false, // 分割字符串stringArray: false, // 字符串数组transformObjectKeys: false, // 转换对象键unicodeEscapeSequence: true, // Unicode 转义序列reservedNames: ["^slot$", "^v-slot$", "^scopedSlots$", "^\\$scopedSlots"],reservedStrings: ["\\$emit", "\\$attrs", "\\$listeners"],
};/*** @param {object} config 配置文件 可参考 https://github.com/javascript-obfuscator/javascript-obfuscator?tab=readme-ov-file#options 默认使用 defaultConfig 不了解请不要随便更改* @returns {object} 插件对象*/
export default function obfuscatePlugin(config = defaultConfig) {return {name: "liiy:obfuscatefiles",enforce: "post", // 确保在最后执行apply: "build", // 仅在生产构建时执行transformIndexHtml(html, event) {console.log("\n");console.time("加密文件耗时");console.log("开始进行文件加密:", "\n");if (!(event != null && event.bundle)) return html;for (const [path, options] of Object.entries(event.bundle)) {if (options.code) {if (!path.includes("node_modules")) {console.log("加密转换文件 -->>", path);options.code = javascriptObfuscator.obfuscate(options.code, config).getObfuscatedCode();}}}console.log("\n");console.timeEnd("加密文件耗时");console.log("加密文件结束", "\n");return html;},};
}

这边为了区分是源码还是自己写的就用了lodash的进行拆分,把依赖单独拆出来,当然,如果觉得体积变大无所谓的话可以用现成的一步到位。

配置以及使用方式如下:

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import obfuscatePlugin from "./src/utils/obfuscatePlugin";// https://vitejs.dev/config/
/** @type {import('vite').UserConfig} */
export default ({ mode }) =>defineConfig({......plugins: [vue({ template: { precompileRoot: false } }),obfuscatePlugin(), // 自定义插件写在这],build: {rollupOptions: {output: {manualChunks: {// 自定义分包策略lodash: ["lodash"],node_modules: ["@element-plus/icons-vue","axios","echarts","element-plus","vue","vue-router","vuex",],},},},},.....});

这样就可以进行单独给些的组件和js进行加密了,体积控制的不错,如果可以使用代码请标注出处。

http://www.dtcms.com/a/457433.html

相关文章:

  • Docker 镜像结构
  • RAG 让你的 AI 更聪明
  • 软测面经(二)
  • 微信小程序入门学习教程,从入门到精通,微信小程序核心组件详解与使用方法(12)
  • redis的集群中的简单问题
  • 托福阅读+听力【2】
  • 技术与情感交织的一生 (十四)
  • Linux 高手进阶:Vim 核心模式与分屏操作详解
  • 计组2.2.0——逻辑门电路,多路选择器,三态门
  • intellij 网站开发公司网页制作哪家比较好
  • 基于GD32的RT-Thread移植(邪修版)
  • 如何让百度口碑收录自己的网站怎么用vs2015做网站
  • 2017优秀网站设计案例个人域名备案有什么风险
  • [论文阅读] AI+软件工程(需求工程)| 告别需求混乱!AI-native时代,需求工程的5大痛点与3大破局方向
  • WPF基本布局容器与控件
  • 临时需电子印章?无需下载注册生成高清印章
  • Qt基础之五十:Qt设置样式的几种方式
  • 理解Roo Code的速率限制与成本优化
  • 农村建设集团有限公司网站重庆南川网站制作价格
  • 爬虫调试技巧:常用工具与日志分析,快速定位问题
  • 反向代理和负载均衡
  • 水果网站设计论文网页传奇游戏中心
  • 兰州网站建设lst0931wordpress调用函数大全
  • JavaScript核心构成与基础语法详解1
  • Redission分布式锁、WatchDog续约、布隆过滤器
  • 《jQuery 捕获》
  • 【开题答辩全过程】以 阿歹果园养鸡场管理系统为例,包含答辩的问题和答案
  • 【数据结构】考研数据结构核心考点:二叉排序树(BST)全方位详解与代码实现
  • 河北做网站哪家公司好广州市网站建设公
  • AI学习日记——卷积神经网络(CNN):卷积层与池化层的概念