e672ff60ca41d2890071753507f7e7ca66f08127
@mes-processors/libs
这是一个用于处理MES(制造执行系统)相关工作流的处理器类库。
安装
在内网环境下执行以下脚本进行安装
pnpm add http://gitea.cf/MES-FE/mes-packages/releases/download/0.1/mes-processors-libs-0.1.0.tgz
Caution
在安装库之前,请确认以下信息:
- 该库发布于内网gitea仓库的release中,所以你需要提前在gitea中进行登录,并确保你有该仓库的访问权限。
- 库的版本需要手动进行控制,注意上述链接中的版本信息,在安装前需要主动修改版本号,请前往http://gitea.cf/MES-FE/mes-packages/releases来确认最新版本。
使用
该库提供了MES/iMES公用的处理器,并已配置为导出项,请参考以下Typescript代码进行使用:
// 引入矩形优化处理器
import { RectLayoutProcConfig } from 'cut-abstractions';
import { RectLayoutProc } from '@mes-processors/libs';
// 实例化处理器
const proc = new RectLayoutProc();
// 构建上下文f proc.exec>[0] = {
input: testObj,
params: new RectLayoutProcConfig()
};
// 异步执行
const ctx: Parameters<typeo
await proc.exec(ctx);
// 从上下文对象中获取输出内容
console.log("RESULT: ", ctx.output);
Q&A
运行某些处理器时出现404(Not Found)错误
错误描述
当执行处理器时,出现类似下面的错误:
GET http://localhost:5173/node_modules/.vite/deps/assets/RectOptimizeMachine.worker-BO2fmpVH.js 404 (Not Found)
根本原因
该库中某些处理器使用了Web Worker来实现多线程异步处理(例如矩形优化处理器)。
Web Worker为单独打包的资产文件,但某些打包工具可能会对node_modules
中的依赖进行预构建来提高性能,如果Worker文件被视为了预构建的一部分,就可能导致处理器无法正确地处理Worker文件的相对引用路径,导致在运行时尝试从node_modules/.vite/deps/assets/
这样的内部路径加载,而这个路径在实际部署或服务时是不存在的。
解决方法
在打包工具中对该库进行配置,禁用对该库的优化和预构建,以vite
为例:
// vite.config.ts
...
optimizeDeps: {
exclude: ["@mes-processors/libs"] // 从optimizeDeps中排除该库
}
...
开发
发布并打包项目
pnpm build
pnpm pack
Note
发布前记得更改版本号
约定
目录
src
├── modules 项目模块分组
├── processors 处理器
└── utils 公用的工具类
导出和打包
- 编写的处理器请在
src/index.ts
中进行导出 - 编写的工具类请在
src/utils/index.ts
中进行导出 - 在打包时项目仅会对
src/index.ts
进行打包,工具类相关模块不会进行打包 - 关于打包相关明细请自行查看相关文件
Warning
在该工作区中编写模块时,禁止使用绝对路径进行导入,禁止在
tsconfig.json
或vite.config.ts
中添加"@"别名,所有导入语句请使用相对路径进行引入,否则会因monorepo内部导入混乱导致模块解析失败。
测试
项目使用Vitest作为单元测试框架,若要对TS文件编写单元测试,请在文件的同目录下创建<文件名>.test.ts
文件,并遵循Vitest规范编写单元测试。
要执行单元测试,请运行下面的命令:
pnpm test
Description
更新mes依赖库--若无大变动则不做修改
Latest
Languages
TypeScript
100%