在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相关的问题?
答案 0 :(得分:0)
最有可能您在执行copy . .
时使用主机中的node_modules覆盖了node_modules。尝试在干净的存储库上运行命令或将node_modules添加到docker ignore中。