混淆加密

JavaScript代码混淆,一定程度上达到了保护原代码的目的。DeekeScript默认采用了UglifyJS插件进行代码混淆。

注意:开发模式下不建议使用混淆,生产环境可以使用混淆。同时还需要了解到混淆之后,给生产bug排查带来了一定阻碍。

UglifyJS

UglifyJS 是一个 JavaScript 压缩与混淆工具,专注于减少代码体积、优化逻辑结构,并提供基础的变量名混淆功能。它是前端工程化中常用的代码优化工具。

核心功能

代码压缩

删除空格、换行、注释。

缩短变量名(如 myVariable → a)。

合并表达式(如 a=1; b=2; → a=1,b=2;)。

语法优化

移除未使用的代码(Dead Code Elimination)。

简化逻辑(如 if (true) { ... } 直接执行内部代码)。

数学表达式优化(如 2 * 3 → 6)。

变量混淆

重命名局部变量(全局变量默认不混淆)。

可选混淆属性名(需手动配置)。

执行步骤:

打开项目根目录下面的package.json文件,可以看到如下配置:

  "scripts": {
    "build": "cpx \"src/**/*\" script",
    "build-zip": "cpx \"src/**/*\" script && ts-node --esm ./deekeScriptZipBuild",
    "build-obfuscator": "cpx \"src/**/*\" script && ts-node --esm ./gulpfile",
    "build-obfuscator-zip": "cpx \"src/**/*\" script && ts-node --esm ./gulpfile && ts-node --esm ./deekeScriptZipBuild",
    "postinstall": "ts-node --esm init"
  },

build命令是将源码复制到script文件夹;build-zip命令是将源码复制到script文件夹并打包成zip;包含“obfuscator”相关的命令则是在原有命令基础上增加代码混淆。

混淆执行命令:npm run build-obfuscator

Copyright © doc.deeke.cn 2025 all right reserved,powered by Gitbook更新时间: 2025-04-01 10:05:38

results matching ""

    No results matching ""