Я пытаюсь импортировать некоторые серверные методы apps/backend/... в свой packages/graphql, потому что мои преобразователи Graphql на самом деле вызывают внутренние маршруты, но я не вижу, как это сделать в документации турбо-монорепо...
мой текущий интерфейс (client) импортирует "@repo/graphql" : "*", но теперь мне нужен пакет Graphql для доступа к моим методам внутреннего интерфейса (server), но я не могу просто обойти это с помощью относительного пути, потому что Turbo не разрешит его после развертывания.
есть у кого-нибудь идея?
Не могли бы вы порекомендовать мне использовать Graphql в качестве приложения в /apps или, возможно, стратегия пакетов — это хорошая идея?
вот некоторая информация:
скажем, у меня есть getComment из моего ./apps/server/src/domain/task/comment.controller.ts и что я получаю доступ к этому ресурсу через Graphql ./packages/graphql/graphql/src/resolvers.ts, распознаватель вызовет этот конкретный метод.
.
├── apps
│ ├── client
│ └── server
├── packages
│ ├── graphql
│ │ ├── graphql
│ │ │ ├── schema.gql
│ │ │ ├── resolvers.ts
│ │ │ └── src
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── schema.graphql
│ │ │ └── server.ts
│ │ ├── README.md
│ │ ├── codegen.yml
│ │ └── tsconfig.json
│ └── prisma
├── README.md
├── docker-compose.yml
├── eslint.config.mjs
├── makefile
├── package-lock.json
├── package.json
├── prettier.config.mjs
├── tsconfig.json
└── turbo.json



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам необходимо экспортировать свои методы из приложения ./apps/server Nestjs, как это делает пакет в монорепо.
Вот шаги, которые помогут это сделать.
src/export.ts в apps/server и экспортируйте * из любого файла или метода, который должен использоваться пакетом Graphql.// src/export.ts
export * from "./domain/task/comment.controller.ts"
src/export.ts из apps/server/package.json// ./apps/server/package.json
{
"name": "server",
"version": "0.0.1",
"description": "",
// like this
"exports": {
".": "./src/export.ts"
},
"dependencies":{
"@nestjs/common": "^10.0.0",
}
}
/packages/graphql. В ./packages/graphql/package.json
добавьте "server":"workspace:*" к объекту dependencies.// ./packages/graphql/package.json
{
"name": "your-graphql-package",
"version": "0.0.1",
"description": "",
"exports": {
"types": "./src/export.d.ts"
},
"dependencies":{
"server":"workspace:*"
// other dependencies
}
}
И, наконец, запустите npm/pnpm/yarn/bun install, чтобы позволить турборепо разрешить зависимости для graphql пакета из server app.
Теперь вы можете импортировать пакеты вашего сервера в пакеты Graphql, выполнив что-то вроде.
// ./packages/graphql/index.ts
import { CommentController } from "server";
Хотя не рекомендуется экспортировать из папки apps/ в packages/. Возможно, вы захотите пересмотреть архитектуру вашего приложения.