@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.jsonvite.config.ts中添加"@"别名所有导入语句请使用相对路径进行引入否则会因monorepo内部导入混乱导致模块解析失败。

测试

项目使用Vitest作为单元测试框架若要对TS文件编写单元测试请在文件的同目录下创建<文件名>.test.ts文件并遵循Vitest规范编写单元测试。

要执行单元测试,请运行下面的命令:

pnpm test
Description
造型实际的刀路(大板)
Readme 452 KiB
Languages
TypeScript 100%