增加WebPack混淆并打包
This commit is contained in:
33
README.md
33
README.md
@@ -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` 下。生产中建议:
|
||||
- 使用外部挂载或卷持久化这些目录;或
|
||||
- 改为输出到标准输出并配置外部日志采集/轮转。
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user