From 9df91bf2cc9de89e45e9cbfcae8b843a168acd57 Mon Sep 17 00:00:00 2001 From: Denozordec Date: Sat, 27 Jun 2026 23:36:15 +0700 Subject: [PATCH] =?UTF-8?q?fix(build):=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA?= =?UTF-8?q?=D0=B0=20@cfdm/db=20=D0=B8=20@cfdm/shared=20=D0=B2=20dist=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20production?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Node в Docker не мог импортировать .ts из workspace-пакетов; exports переключены на dist, добавлен tsc build и сборка в Dockerfile. Co-authored-by: Cursor --- Dockerfile | 6 ++++-- apps/api/package.json | 4 ++-- packages/db/package.json | 35 ++++++++++++++++++++--------------- packages/db/tsconfig.json | 16 ++++++++++++++++ packages/shared/package.json | 35 ++++++++++++++++++++++++++++------- packages/shared/src/index.ts | 12 ++++++------ packages/shared/tsconfig.json | 15 +++++++++++++++ pnpm-lock.yaml | 10 ++++++++++ 8 files changed, 101 insertions(+), 32 deletions(-) create mode 100644 packages/db/tsconfig.json create mode 100644 packages/shared/tsconfig.json diff --git a/Dockerfile b/Dockerfile index 55b925e..970845a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,10 +16,12 @@ RUN --mount=type=cache,target=/root/.local/share/pnpm pnpm install --frozen-lock COPY apps ./apps COPY packages ./packages -RUN pnpm --filter web build \ +RUN pnpm --filter @cfdm/shared build \ + && pnpm --filter @cfdm/db build \ + && pnpm --filter web build \ && pnpm --filter api build \ && pnpm prune --prod \ - && rm -rf apps/web/src apps/api/src \ + && rm -rf apps/web/src apps/api/src packages/db/src packages/shared/src \ apps/web/node_modules/.vite-temp \ apps/web/tsconfig.json apps/api/tsconfig.json \ && find node_modules apps/*/node_modules packages/*/node_modules -type f \( \ diff --git a/apps/api/package.json b/apps/api/package.json index a814b7f..7efa5e7 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -4,9 +4,9 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "tsx watch src/index.ts", + "dev": "pnpm --filter @cfdm/shared build && pnpm --filter @cfdm/db build && tsx watch src/index.ts", "dev:legacy": "node index.js", - "build": "tsc -p tsconfig.json", + "build": "pnpm --filter @cfdm/shared build && pnpm --filter @cfdm/db build && tsc -p tsconfig.json", "start": "node dist/index.js", "start:legacy": "node index.js", "test": "vitest run" diff --git a/packages/db/package.json b/packages/db/package.json index 98d35df..a8e7ad4 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -3,21 +3,24 @@ "version": "0.0.0", "private": true, "type": "module", - "main": "./src/index.ts", - "types": "./src/index.ts", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "exports": { - ".": "./src/index.ts", - "./schema": "./src/schema/index.ts", - "./repositories/providers": "./src/repositories/providers.ts", - "./repositories/provider-accounts": "./src/repositories/provider-accounts.ts", - "./repositories/vps": "./src/repositories/vps.ts", - "./repositories/projects": "./src/repositories/projects.ts", - "./repositories/payments": "./src/repositories/payments.ts", - "./repositories/balance-ledger": "./src/repositories/balance-ledger.ts", - "./repositories/settings": "./src/repositories/settings.ts", - "./repositories/tariffs": "./src/repositories/tariffs.ts", - "./repositories/snapshot": "./src/repositories/snapshot.ts", - "./repositories/utils": "./src/repositories/utils.ts" + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "./schema": { + "types": "./dist/schema/index.d.ts", + "default": "./dist/schema/index.js" + }, + "./repositories/*": { + "types": "./dist/repositories/*.d.ts", + "default": "./dist/repositories/*.js" + } + }, + "scripts": { + "build": "tsc -p tsconfig.json" }, "dependencies": { "drizzle-orm": "^0.40.0", @@ -25,6 +28,8 @@ }, "devDependencies": { "drizzle-kit": "^0.30.0", - "@types/better-sqlite3": "^7.6.13" + "@types/better-sqlite3": "^7.6.13", + "@types/node": "^22.10.0", + "typescript": "^5.9.2" } } diff --git a/packages/db/tsconfig.json b/packages/db/tsconfig.json new file mode 100644 index 0000000..9cb0ede --- /dev/null +++ b/packages/db/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", + "target": "ES2022", + "outDir": "./dist", + "rootDir": "./src", + "noEmit": false, + "declaration": true, + "declarationMap": true, + "verbatimModuleSyntax": false, + "types": ["node"] + }, + "include": ["src/**/*.ts"] +} diff --git a/packages/shared/package.json b/packages/shared/package.json index 30e0b1b..61cd5b0 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -3,16 +3,37 @@ "version": "0.0.0", "private": true, "type": "module", - "main": "./src/index.ts", - "types": "./src/index.ts", + "main": "./dist/index.js", + "types": "./dist/index.d.ts", "exports": { - ".": "./src/index.ts", - "./contracts/*": "./src/contracts/*.ts", - "./types/*": "./src/types/*.ts", - "./geo": "./src/geo/index.ts", - "./geo/*": "./src/geo/*.ts" + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + }, + "./contracts/*": { + "types": "./dist/contracts/*.d.ts", + "default": "./dist/contracts/*.js" + }, + "./types/*": { + "types": "./dist/types/*.d.ts", + "default": "./dist/types/*.js" + }, + "./geo": { + "types": "./dist/geo/index.d.ts", + "default": "./dist/geo/index.js" + }, + "./geo/*": { + "types": "./dist/geo/*.d.ts", + "default": "./dist/geo/*.js" + } + }, + "scripts": { + "build": "tsc -p tsconfig.json" }, "dependencies": { "zod": "^3.25.0" + }, + "devDependencies": { + "typescript": "^5.9.2" } } diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index 0260ca5..36ce595 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -1,6 +1,6 @@ -export * from './contracts/provider' -export * from './contracts/provider-account' -export * from './contracts/vps' -export * from './contracts/payment' -export * from './contracts/balance-ledger' -export * from './contracts/settings' +export * from './contracts/provider.js' +export * from './contracts/provider-account.js' +export * from './contracts/vps.js' +export * from './contracts/payment.js' +export * from './contracts/balance-ledger.js' +export * from './contracts/settings.js' diff --git a/packages/shared/tsconfig.json b/packages/shared/tsconfig.json new file mode 100644 index 0000000..65b1f81 --- /dev/null +++ b/packages/shared/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", + "target": "ES2022", + "outDir": "./dist", + "rootDir": "./src", + "noEmit": false, + "declaration": true, + "declarationMap": true, + "verbatimModuleSyntax": false + }, + "include": ["src/**/*.ts"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e36e1c3..2acb419 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -209,15 +209,25 @@ importers: '@types/better-sqlite3': specifier: ^7.6.13 version: 7.6.13 + '@types/node': + specifier: ^22.10.0 + version: 22.20.0 drizzle-kit: specifier: ^0.30.0 version: 0.30.6 + typescript: + specifier: ^5.9.2 + version: 5.9.3 packages/shared: dependencies: zod: specifier: ^3.25.0 version: 3.25.76 + devDependencies: + typescript: + specifier: ^5.9.2 + version: 5.9.3 packages/ui: dependencies: