From 25136349ff4a5e8467839e70617c10ef9d421d66 Mon Sep 17 00:00:00 2001 From: YHH <359807859@qq.com> Date: Wed, 13 Aug 2025 12:18:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8A=A8=E6=80=81require?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E7=9A=84=E8=B7=A8=E5=B9=B3=E5=8F=B0=E9=94=99?= =?UTF-8?q?=E8=AF=AF=20=E6=96=B0=E5=A2=9Eemitter=E7=9A=84dispose=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E7=94=A8=E4=BA=8E=E6=B8=85=E7=90=86=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=20=E5=90=AF=E7=94=A8composite=E5=A2=9E=E9=87=8F=E7=BC=96?= =?UTF-8?q?=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 265 ++++++++++++------ packages/core/build-rollup.cjs | 2 +- packages/core/package.json | 5 +- .../src/Utils/Debug/ComponentDataCollector.ts | 2 +- packages/core/src/Utils/Debug/DebugManager.ts | 6 +- .../src/Utils/Debug/EntityDataCollector.ts | 2 +- .../Utils/Debug/PerformanceDataCollector.ts | 2 +- packages/core/src/Utils/Emitter.ts | 35 +++ packages/core/src/index.ts | 3 + packages/core/tsconfig.json | 1 + 10 files changed, 231 insertions(+), 92 deletions(-) diff --git a/package-lock.json b/package-lock.json index 22e751e8..6f8c93a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -529,6 +529,30 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@emnapi/core": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.5.tgz", @@ -568,15 +592,15 @@ "resolved": "packages/math", "link": true }, - "node_modules/@esengine/ecs-framework-network-client": { + "node_modules/@esengine/network-client": { "resolved": "packages/network-client", "link": true }, - "node_modules/@esengine/ecs-framework-network-server": { + "node_modules/@esengine/network-server": { "resolved": "packages/network-server", "link": true }, - "node_modules/@esengine/ecs-framework-network-shared": { + "node_modules/@esengine/network-shared": { "resolved": "packages/network-shared", "link": true }, @@ -2681,6 +2705,34 @@ "node": ">= 10" } }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT" + }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", @@ -2949,13 +3001,6 @@ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", "dev": true }, - "node_modules/@types/uuid": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/ws": { "version": "8.18.1", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", @@ -3188,6 +3233,13 @@ "dev": true, "license": "ISC" }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -4211,6 +4263,13 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "license": "MIT" + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -4454,6 +4513,16 @@ "node": ">=8" } }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -10747,6 +10816,50 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, "node_modules/tsconfig-paths": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", @@ -10960,6 +11073,7 @@ "version": "10.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "dev": true, "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -10969,6 +11083,13 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "license": "MIT" + }, "node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", @@ -11386,6 +11507,16 @@ "node": ">=12" } }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -11400,7 +11531,7 @@ }, "packages/core": { "name": "@esengine/ecs-framework", - "version": "2.1.35", + "version": "2.1.41", "license": "MIT", "devDependencies": { "@rollup/plugin-commonjs": "^28.0.3", @@ -11471,90 +11602,60 @@ } }, "packages/network-client": { - "name": "@esengine/ecs-framework-network-client", - "version": "1.0.17", + "name": "@esengine/network-client", + "version": "1.0.0", "license": "MIT", "dependencies": { - "ws": "^8.18.0" - }, - "devDependencies": { - "@esengine/ecs-framework": "*", - "@esengine/ecs-framework-network-shared": "*", - "@rollup/plugin-commonjs": "^28.0.3", - "@rollup/plugin-node-resolve": "^16.0.1", - "@rollup/plugin-terser": "^0.4.4", - "@types/jest": "^29.5.14", - "@types/node": "^20.19.0", - "@types/ws": "^8.5.13", - "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", - "rimraf": "^5.0.0", - "rollup": "^4.42.0", - "rollup-plugin-dts": "^6.2.1", - "ts-jest": "^29.4.0", - "typescript": "^5.8.3" - }, - "peerDependencies": { - "@esengine/ecs-framework": ">=2.1.29", - "@esengine/ecs-framework-network-shared": ">=1.0.0" - } - }, - "packages/network-server": { - "name": "@esengine/ecs-framework-network-server", - "version": "1.0.5", - "license": "MIT", - "dependencies": { - "uuid": "^10.0.0", - "ws": "^8.18.0" - }, - "devDependencies": { - "@esengine/ecs-framework": "*", - "@esengine/ecs-framework-network-shared": "*", - "@rollup/plugin-commonjs": "^28.0.3", - "@rollup/plugin-node-resolve": "^16.0.1", - "@rollup/plugin-terser": "^0.4.4", - "@types/jest": "^29.5.14", - "@types/node": "^20.19.0", - "@types/uuid": "^10.0.0", - "@types/ws": "^8.5.13", - "jest": "^29.7.0", - "jest-environment-node": "^29.7.0", - "rimraf": "^5.0.0", - "rollup": "^4.42.0", - "rollup-plugin-dts": "^6.2.1", - "ts-jest": "^29.4.0", - "typescript": "^5.8.3" - }, - "peerDependencies": { - "@esengine/ecs-framework": ">=2.1.29", - "@esengine/ecs-framework-network-shared": ">=1.0.0" - } - }, - "packages/network-shared": { - "name": "@esengine/ecs-framework-network-shared", - "version": "1.0.15", - "license": "MIT", - "dependencies": { - "protobufjs": "^7.5.3", + "@esengine/ecs-framework": "file:../core", + "@esengine/network-shared": "file:../network-shared", "reflect-metadata": "^0.2.2" }, "devDependencies": { - "@esengine/ecs-framework": "*", - "@rollup/plugin-commonjs": "^28.0.3", - "@rollup/plugin-node-resolve": "^16.0.1", - "@rollup/plugin-terser": "^0.4.4", "@types/jest": "^29.5.14", "@types/node": "^20.19.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "rimraf": "^5.0.0", - "rollup": "^4.42.0", - "rollup-plugin-dts": "^6.2.1", "ts-jest": "^29.4.0", "typescript": "^5.8.3" + } + }, + "packages/network-server": { + "name": "@esengine/network-server", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@esengine/ecs-framework": "file:../core", + "@esengine/network-shared": "file:../network-shared", + "reflect-metadata": "^0.2.2", + "ws": "^8.18.2" }, - "peerDependencies": { - "@esengine/ecs-framework": ">=2.1.29" + "devDependencies": { + "@types/jest": "^29.5.14", + "@types/node": "^20.19.0", + "@types/ws": "^8.18.1", + "jest": "^29.7.0", + "rimraf": "^5.0.0", + "ts-jest": "^29.4.0", + "ts-node": "^10.9.0", + "typescript": "^5.8.3" + } + }, + "packages/network-shared": { + "name": "@esengine/network-shared", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@esengine/ecs-framework": "file:../core", + "reflect-metadata": "^0.2.2" + }, + "devDependencies": { + "@types/jest": "^29.5.14", + "@types/node": "^20.19.0", + "jest": "^29.7.0", + "rimraf": "^5.0.0", + "ts-jest": "^29.4.0", + "typescript": "^5.8.3" } } } diff --git a/packages/core/build-rollup.cjs b/packages/core/build-rollup.cjs index 6905b8ac..7734ba18 100644 --- a/packages/core/build-rollup.cjs +++ b/packages/core/build-rollup.cjs @@ -14,7 +14,7 @@ async function main() { // 执行Rollup构建 console.log('📦 执行 Rollup 构建...'); - execSync('rollup -c rollup.config.cjs', { stdio: 'inherit' }); + execSync('npx rollup -c rollup.config.cjs', { stdio: 'inherit' }); // 生成package.json console.log('📋 生成 package.json...'); diff --git a/packages/core/package.json b/packages/core/package.json index ea72b9b3..b331c37b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,8 +1,7 @@ { "name": "@esengine/ecs-framework", - "version": "2.1.35", + "version": "2.1.41", "description": "用于Laya、Cocos Creator等JavaScript游戏引擎的高性能ECS框架", - "type": "module", "main": "bin/index.js", "types": "bin/index.d.ts", "exports": { @@ -30,7 +29,7 @@ "egret" ], "scripts": { - "clean": "rimraf bin dist", + "clean": "rimraf bin dist tsconfig.tsbuildinfo", "build:ts": "tsc", "prebuild": "npm run clean", "build": "npm run build:ts", diff --git a/packages/core/src/Utils/Debug/ComponentDataCollector.ts b/packages/core/src/Utils/Debug/ComponentDataCollector.ts index 1a4e6396..1e505be2 100644 --- a/packages/core/src/Utils/Debug/ComponentDataCollector.ts +++ b/packages/core/src/Utils/Debug/ComponentDataCollector.ts @@ -1,5 +1,6 @@ import { IComponentDebugData } from '../../Types'; import { Core } from '../../Core'; +import { ComponentPoolManager } from '../../ECS/Core/ComponentPool'; /** * 组件数据收集器 @@ -49,7 +50,6 @@ export class ComponentDataCollector { let poolSizes = new Map(); try { - const { ComponentPoolManager } = require('../../ECS/Core/ComponentPool'); const poolManager = ComponentPoolManager.getInstance(); const poolStats = poolManager.getPoolStats(); const utilizations = poolManager.getPoolUtilization(); diff --git a/packages/core/src/Utils/Debug/DebugManager.ts b/packages/core/src/Utils/Debug/DebugManager.ts index f248a702..33792a11 100644 --- a/packages/core/src/Utils/Debug/DebugManager.ts +++ b/packages/core/src/Utils/Debug/DebugManager.ts @@ -7,6 +7,8 @@ import { SceneDataCollector } from './SceneDataCollector'; import { WebSocketManager } from './WebSocketManager'; import { Core } from '../../Core'; import { Component } from '../../ECS/Component'; +import { ComponentPoolManager } from '../../ECS/Core/ComponentPool'; +import { Pool } from '../../Utils/Pool'; /** * 调试管理器 @@ -639,7 +641,6 @@ export class DebugManager { try { // 尝试获取组件池统计 - const { ComponentPoolManager } = require('../../ECS/Core/ComponentPool'); const poolManager = ComponentPoolManager.getInstance(); const poolStats = poolManager.getPoolStats(); @@ -662,8 +663,7 @@ export class DebugManager { try { // 尝试获取通用对象池统计 - const { Pool } = require('../../Utils/Pool'); - const poolStats = Pool.getStats(); + const poolStats = Pool.getAllPoolStats(); for (const [typeName, stats] of Object.entries(poolStats)) { const poolData = stats as { diff --git a/packages/core/src/Utils/Debug/EntityDataCollector.ts b/packages/core/src/Utils/Debug/EntityDataCollector.ts index 7e38f86e..574090f5 100644 --- a/packages/core/src/Utils/Debug/EntityDataCollector.ts +++ b/packages/core/src/Utils/Debug/EntityDataCollector.ts @@ -2,6 +2,7 @@ import { IEntityDebugData } from '../../Types'; import { Core } from '../../Core'; import { Entity } from '../../ECS/Entity'; import { Component } from '../../ECS/Component'; +import { ComponentTypeManager } from '../../ECS/Utils/ComponentTypeManager'; /** * 实体数据收集器 @@ -712,7 +713,6 @@ export class EntityDataCollector { if (!typeName || typeName === 'Object' || typeName === 'Function') { try { - const { ComponentTypeManager } = require('../../ECS/Utils/ComponentTypeManager'); const typeManager = ComponentTypeManager.instance; const componentType = component.constructor as any; const typeId = typeManager.getTypeId(componentType); diff --git a/packages/core/src/Utils/Debug/PerformanceDataCollector.ts b/packages/core/src/Utils/Debug/PerformanceDataCollector.ts index 37c72a77..48256137 100644 --- a/packages/core/src/Utils/Debug/PerformanceDataCollector.ts +++ b/packages/core/src/Utils/Debug/PerformanceDataCollector.ts @@ -1,5 +1,6 @@ import { IPerformanceDebugData } from '../../Types'; import { Time } from '../Time'; +import { Core } from '../../Core'; /** * 性能数据收集器 @@ -64,7 +65,6 @@ export class PerformanceDataCollector { if (!performanceMonitor) { // 尝试从Core实例获取性能监视器 try { - const { Core } = require('../../Core'); const coreInstance = Core.Instance; if (coreInstance && (coreInstance as any)._performanceMonitor) { performanceMonitor = (coreInstance as any)._performanceMonitor; diff --git a/packages/core/src/Utils/Emitter.ts b/packages/core/src/Utils/Emitter.ts index c7c32657..96eea33b 100644 --- a/packages/core/src/Utils/Emitter.ts +++ b/packages/core/src/Utils/Emitter.ts @@ -78,4 +78,39 @@ export class Emitter { let list = this._messageTable.get(eventType); return list ? list.some(observer => observer.func === handler) : false; } + + /** + * 移除指定事件类型的所有监听器 + * @param eventType 事件类型 + */ + public removeAllObservers(eventType?: T): void { + if (eventType !== undefined) { + this._messageTable.delete(eventType); + } else { + this._messageTable.clear(); + } + } + + /** + * 释放所有资源,清理所有监听器 + */ + public dispose(): void { + this._messageTable.clear(); + } + + /** + * 获取事件类型数量 + */ + public getEventTypeCount(): number { + return this._messageTable.size; + } + + /** + * 获取指定事件类型的监听器数量 + * @param eventType 事件类型 + */ + public getObserverCount(eventType: T): number { + const list = this._messageTable.get(eventType); + return list ? list.length : 0; + } } diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 825b398e..f51fc328 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -27,6 +27,9 @@ export type { ILogger, LoggerConfig } from './Utils/Logger'; // ECS核心组件 export * from './ECS'; +// 事件系统 +export { ECSEventType, EventPriority, EVENT_TYPES, EventTypeValidator } from './ECS/CoreEvents'; + // 工具类和类型定义 export * from './Utils'; export * from './Types'; \ No newline at end of file diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index b6817988..d9789258 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -8,6 +8,7 @@ "outDir": "./bin", "rootDir": "./src", "strict": true, + "composite": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, "skipLibCheck": true,