Структура проекта
Обычно gamemode содержит три независимо типизированных контекста и одно дерево результата для deployment.
text
my-gamemode/
├─ src/
│ ├─ server/main.ts
│ ├─ client/main.ts
│ └─ shared/events.d.ts
├─ ui/
│ ├─ src/
│ └─ index.html
├─ client-resources/resources/
├─ dist/
│ ├─ config.json
│ └─ scripting/
│ ├─ server/main.js
│ └─ client/
├─ tsconfig.server.json
├─ tsconfig.client.json
└─ package.jsonКомпилируйте server и client отдельно. Оба declaration package определяют глобальный vimp, но с разной формой; их одновременное подключение создаёт неверную модель типов.
Все файлы в <scripts_path>/client/ предлагаются подключающимся игрокам. Не кладите туда server source maps, секреты, database credentials или node_modules.
Server entrypoint имеет фиксированное имя: <scripts_path>/server/main.js. Client scripts и CEF assets размещаются в client tree и могут использовать package:// URL.