在 docker build for 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 run build 而不是 docker,同样有效
在 dockerfile 中运行 npm run build 时出错
" error TS2322: Type 'Pick< ILocationValue, "address" | "_id" | "latitude" | "longitude" | "timezone" >' is not assignable to type 'ILocationValue'. "
下面是 ILocationValue
interface ILocationValue extends MongoDoc, ILoc {}
和
interface ILoc
{
longitude: number;
latitude: number;
timezone: string;
address: string;
}
有人可以帮助解决这个问题,或者这个 docker 相关或 TS 相关的问题吗?
最佳答案
很可能你在执行 copy . .
时覆盖了 node_modules与您的主机。尝试在干净的存储库上运行命令或将 node_modules 添加到 docker ignore。
关于node.js - npm run build 期间 docker build 中的 Typescript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60999743/