node.js - 在Dockerfile中进行npm构建时不会生成'dist'文件夹

标签 node.js docker npm

我通常为Java / Go应用程序编写Dockerfile,这是我第一次遇到这样的情况:我必须为已经存在(并且正在运行生产)的Node.js应用程序编写Dockerfile。根据我对过去几天获得的Node.js的一点了解,在构建带有源代码的Node.js项目之后,会生成 dist 文件夹(如果我错了,请纠正我)。因此,我有兴趣将父Docker镜像的 dist 文件夹复制到子Docker镜像。

但是,将所有内容从应用程序复制到父Docker镜像(第6行)并运行'npm run build'命令后,不会为我生成dist文件夹(请注意,正在生成 node_modules 和package-lock.json )。

我的Dockerfile如下:

FROM node:10-alpine as BUILD
WORKDIR /src
COPY package*.json /src
RUN apk add --update --no cache \
    python \
    make \
    g++
RUN npm install
COPY . /src
RUN npm run build

我该如何解决?

最佳答案

如果您在节点应用程序中使用 typescript ,请按照以下说明进行操作。

请在“tsconfig.json”的 CompilerOptions 部分下添加以下条目

tsconfig.json


**"outDir": "./dist/"**

package.json - Add the below script too.


"scripts": { "build": "tsc" }
现在,重新运行“npm run build”。您将看到dist文件夹。

关于node.js - 在Dockerfile中进行npm构建时不会生成'dist'文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59693994/

相关文章:

node.js - npm 安装带有自定义更改的 fork 存储库不会 `build` 模块

node.js - 使用 root 用户的 NPM 安装权限被拒绝错误

node.js - 使用 Nodejs 从运行时目录在浏览器中提供文件

javascript - 关联数组拼接不起作用

docker - 从一个容器到另一个容器的url服务是什么?

java - 如何在 JUnit 测试容器中的 MySQLContainer 中导入 sql 转储文件

ubuntu - 无法通过 apt-key 添加 docker GPG key

javascript - V8 中的函数调用优化

javascript - 为什么我不能引用模块外部的属性集?

node.js - 无法在 Raspbian-Raspberry Pi 3 上更新 nodejs 和 npm