如何在构建dist /

时间:2017-08-18 02:07:04

标签: javascript node.js docker webpack production-environment

我使用webpack捆绑前端资产并将它们放在dist目录中。但是,我还希望有一个快速服务器来提供index.html html-webpack-plugin生成,并存储在dist中。快速服务器需要一些节点模块,主要是表达式,正文解析器,时刻等。

然而node_modules中没有dist,所以当无法找到快递时,它处于第一个障碍。我应该为这个小型快速服务器创建一个单独的package.json并将其保存在dist内,并将其npm install放在我的Dockerfile的单独行上(看起来有点复杂......)或者是在webpacking之后,有一个更好的方法让这个服务器解决它的依赖关系吗?

Dockerfile

FROM node:8.4.0-alpine

WORKDIR /opt/app

COPY ./node_modules node_modules 
COPY ./dist . 

EXPOSE 6500

ENTRYPOINT ["node", "server.js"]

第5行是暂时尝试将所有node_modules移动到应用根目录中是否允许服务器运行。它确实包含了从express和body-parser到react和webpack-dev-server的所有内容。

1 个答案:

答案 0 :(得分:0)

您正在将本地系统中的npm模块(最有可能)复制到高山实例,这是一个不同的操作系统,不一定兼容。

您需要运行RUN npm install

我的猜测是你需要一个与此类似的dockerfile:

FROM node:8.4.0-alpine

WORKDIR /opt/app

COPY package.json .
RUN npm install

COPY ./dist . 

EXPOSE 6500

//This might also be wrong: ENTRYPOINT ["node", "server.js"]
CMD [ "npm", "start" ]

如果我正确理解你,你可能需要在文字之后移动文件:

RUN mv node_modules dist/node_modules

有一个很好的教程可能会对https://nodejs.org/en/docs/guides/nodejs-docker-webapp/

有所帮助