# #typescript #docker #google-cloud-run
#машинописный текст #докер #google-облачный запуск
Вопрос:
У меня есть вложенный экспорт, реализованный в Typescript и развернутый в облаке, запущенный через Docker. При локальном запуске (через npm start
) все работает нормально, однако при развертывании в облачном режиме я получаю сообщение TS2305: Module '"../controllers"' has no exported member
.
У меня есть такая структура:
|-- cloud-run-jobs | |-- src | | |-- controllers | | | |-- lastClose | | | | |-- asia.ts | | | | |-- index.ts | | | |-- index.ts | | |-- routes | | | |-- lastClose.ts | |-- Dockerfile
В /src/controllers/lastClose/asia.ts
я экспортирую функции, такие как:
export const someFunctionA = async () =gt; { ... } export const someFunctionB = async () =gt; { ... }
/src/controllers/lastClose/index.ts
экспортирует его вверх:
export * from "./asia"
и, наконец, в /src/controllers/index.ts
:
export * from "./lastClose"
Когда функции импортируются в /src/routes/lastClose.ts
, как показано ниже, приложение отлично работает локально ( npm start
), но не при развертывании в облаке.:
import { someFunctionA, someFunctionB, } from "../controllers";
Однако, когда я изменю способ импорта на следующий, я смогу успешно выполнить развертывание в облаке:
import { someFunctionA, someFunctionB, } from "../controllers/lastClose/asia";
Мой Док-файл:
FROM node:alpine WORKDIR /app COPY package.json . RUN npm install --only=prod COPY . . CMD ["npm", "start"]
Что может быть не так?
Комментарии:
1. Привет @fab, не могли бы вы попробовать запустить docker локально и посмотреть, появится ли такое же поведение. Спасибо.