由于类型错误,在Nodejs Docker容器中进行无服务器Webpack构建失败

时间:2019-09-27 15:14:27

标签: typescript docker webpack serverless-framework serverless-offline

由于在Webpack构建过程中出现类型错误(TS2322),我的无服务器(sls)应用程序无法在Docker容器中构建。在本地构建时,没有错误,并且应用程序可以按设计运行。

错误示例:

ERROR in /app/src/controllers/account.controller.ts
 ./src/controllers/account.controller.ts
 [tsl] ERROR in /app/src/controllers/account.controller.ts(19,9)
 TS2322: Type 'string' is not assignable to type 'number'.

我认为这可能与分配为/app的容器的WORKDIR和webpack.config.js有关,但是我不确定从哪里开始进行故障排除。

背景:

我的无服务器应用程序使用npm脚本“ export AWS_REGION=us-east-1 && export IS_ON_LOCAL_SERVER=true && export TZ=UTC && sls offline start --stage dev”在本地成功构建。当我在Docker容器中运行此脚本时,会在webpack构建过程中导致大量Type错误。

我的Dockerfile(如下)使用node:10.10,并且我在全局范围内安装无服务器。我也尝试过使用node:8.16,并且得到相同的构建错误(在容器中使用10.10时,我不会收到npm警告,因为在使用8.16时会收到npm警告)。

Dockerfile:

# base image
FROM node:10.10

# update
RUN apt-get update && apt-get install -y --no-install-recommends vim && apt-get clean

# set working directory
WORKDIR /app

# add `/app/node_modules/.bin` to $PATH
ENV PATH /app/node_modules/.bin:$PATH

# add app
COPY . /app

# install 
COPY package.json /app/package.json
RUN npm install serverless -g && npm i

# start app
CMD npm run local-server

Docker-Compose:

version: '3.7'

services:

  backend:
    container_name: omp_backend
    build:
      context: ./backend
      dockerfile: Dockerfile
    expose:
      - 3001

    volumes:
      - './backend:/app'
      - '/app/node_modules'
    ports:
      - '3001:3001'

0 个答案:

没有答案