Вложенный экспорт Дает результат «Модуль не имеет экспортированного элемента» При развертывании в облачном режиме

# #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 локально и посмотреть, появится ли такое же поведение. Спасибо.