增加WebPack混淆并打包

This commit is contained in:
2025-11-26 06:33:03 +00:00
parent 1d395a5943
commit 0cc8f13231
16 changed files with 5724 additions and 30 deletions

View File

@@ -105,9 +105,40 @@ Survey 数据:
- `farmeworkapi/server.log` 常规日志;`farmeworkapi/admin.log` 管理员操作日志
- dsxapi 独立运行时在控制台输出重要提示与告警
## Docker 与挂载建议
## Docker 与挂载
- 挂载 `farmeworkapi/license/` 以便导入许可证
- 挂载 `farmeworkapi/network` 供网络配置接口读写
- 挂载 `/hardware_serial` 到容器内,提供硬件序列号以完成许可证绑定
- 可选择将 `dsxapi/competition_data/``dsxapi/competition_tmp/` 映射到持久卷
## Webpack 打包与混淆
本项目已集成基于 Webpack 的 Node 端打包与 JavaScript 混淆,适用于生产环境分发与提高代码可读性门槛。
### 前置条件
- 建议使用 Node.js 18 或 20。
- 安装依赖:`npm install`(包含开发依赖用于构建)。
### 构建与运行
- 构建(打包 + 混淆):`npm run build`
- 运行打包版本:`npm run start:dist`
- 构建产物位置:`dist/`
- 入口:`dist/server.js`
- 资产:`.env``license/``network/``pub.pem``priv.pem``license_issuer.html``online_data.json``dsxapi/connection_maps``dsxapi/competition_data``dsxapi/competition_tmp`(已自动复制)
### 依赖说明
- 打包时使用了 `webpack-node-externals` 排除了 `node_modules`,因此部署环境仍需安装生产依赖:
- 在部署机(或容器)执行:`npm ci --omit=dev`
- 或者在项目根目录(含 `node_modules`)内直接运行 `node dist/server.js`
### 混淆策略
- 已启用 `webpack-obfuscator`,默认配置:开启字符串数组与 RC4 编码、数组旋转,关闭控制流扁平化以保证稳定性。
### 路径与持久化
- 打包后 `__dirname` 指向 `dist`,已通过复制插件将运行期必需文件复制到 `dist`,保持现有代码路径逻辑可用。
- 运行时写入(如 `server.log``admin.log``competition_tmp`/`competition_data`)默认位于 `dist` 下。生产中建议:
- 使用外部挂载或卷持久化这些目录;或
- 改为输出到标准输出并配置外部日志采集/轮转。