node.js - npm run build 期间 docker build 中的 Typescript 错误

标签 node.js typescript docker npm

在 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/

相关文章:

node.js - Webdriver.Io 需要什么版本的 Node?

node.js - puppeteer:无需单独下载即可获取 base64 编码图像

typescript - 如何在 typescript 中使交叉点类型可选

reactjs - 未知 : Service 'containerregistry.googleapis.com' is not enabled for consumer 'project:next'

docker - 在 Google Cloud 上查看 Docker 上的 Tensorboard

javascript - Mongoose - 使用 require 引用另一个模型

node.js - MongooseeachAsync 与异步函数 = 内存泄漏?

typescript - 如何在运行时获取父类

pattern-matching - 您如何在 TypeScript 中模拟 ADT 和模式匹配?

java - 从 Spring Boot 应用程序连接到 mysql 容器