我有以下Dockerfile:
FROM node:12
RUN set -x \
rsyslog \
bash \
curl \
wget \
gettext \
jq
WORKDIR .
COPY package.json .
RUN npm install -g typescript
RUN npm install
COPY . .
RUN npm run build
WORKDIR ./src
RUN tsc --esModuleInterop index.ts
CMD [ "npm", "start" ]
EXPOSE 8080
tsconfig.json中的包含内容如下:
"include": [
"src/controllers/customer/UserAPIController.ts",
"src/controllers/customer/NoticeAPIController.ts",
"src/controllers/merchant/NoticeAPIController.ts",
"src/controllers/customer/MerchantAPIController.ts",
"src/controllers/merchant/MerchantAPIController.ts",
"src/controllers/merchant/UserAPIController.ts",
"src/controllers/customer/SearchAPIController.ts",
"src/controllers/customer/ChatController.ts",
"src/controllers/analytics/AnalyticsAPIController.ts",
"src/controllers/StripeController.ts",
]
当我登录到创建的docker映像时,所有这些文件都位于其指定位置。
那么我到底在做什么错了?
我正在尝试构建index.js和.js文件来运行应用程序。
答案 0 :(得分:0)
该错误是因为显然TypeScript linter要求根目录中的文件是TypeScript。
我通过以下操作对其进行了修复:
创建一个名为“ fake.ts”的空文件
并将其添加到我的tsconfig.json中:
"include": [
"./fake.ts",
"./src/controllers/customer/UserAPIController.ts",
"./src/controllers/customer/NoticeAPIController.ts",
"./src/controllers/merchant/NoticeAPIController.ts",
"./src/controllers/customer/MerchantAPIController.ts",
"./src/controllers/merchant/MerchantAPIController.ts",
"./src/controllers/merchant/UserAPIController.ts",
"./src/controllers/customer/SearchAPIController.ts",
"./src/controllers/customer/ChatController.ts",
"./src/controllers/analytics/AnalyticsAPIController.ts",
"./src/controllers/StripeController.ts",
],