NPM运行构建期间Docker构建中的Typescript错误

时间:2020-04-02 19:38:08

标签: node.js typescript docker npm

在docker build的typescript中遇到一个奇怪的问题。

我已将Docker文件用作多阶段构建。

FROM node:13.12.0-alpine3.10 as build
COPY package.json /tmp/package.json
RUN cd /tmp && npm i --unsafe-perm --no-optional && npm cache clean --force

RUN mkdir -p /home/app && mkdir -p /home/app/ui && cp -a /tmp/node_modules /home/app && cp -a /tmp/ui/node_modules /home/app/ui/node_modules
WORKDIR /home/app
COPY . .
RUN npm run build && cd ui && npm run build

但是如果我运行npm,则在本地计算机而不是docker中运行build

,同样的工作原理

运行npm时出错,在dockerfile内部运行构建

” 错误TS2322:键入'Pick “”分配给“ ILocationValue”类型。 “

下面是ILocationValue

interface ILocationValue extends MongoDoc, ILoc {} 

interface ILoc
{
    longitude: number;
    latitude: number;
    timezone: string;
    address: string;
}

有人可以帮助解决此问题吗,还是这个与docker相关或与TS相关的问题?

1 个答案:

答案 0 :(得分:0)

最有可能您在执行copy . .时使用主机中的node_modules覆盖了node_modules。尝试在干净的存储库上运行命令或将node_modules添加到docker ignore中。