繁体   English   中英

Angular PreRendering / Ng 通用部署

[英]Angular PreRendering / Ng Universal deployment

部署时真的有必要复制 node_modules 吗? 由于我们拥有 840 个节点模块(运行 Angular 7 + Material + Ng-Select),通常需要 7 分钟编译/运行单元测试/部署到登台环境的过程变成了 40 分钟的过程。 问题归结为近 100k 个小文件的系统 I/O。

我试图找出一种方法来保持 SSR,但是当开发人员等待大部分时间来查看他们在暂存环境中的变化时,这将成为一场失败的战斗。

有没有办法将节点模块捆绑并缩小到 main.server.ts 文件中,也许?

您只需要将/dist文件夹内容移动到您的部署区域。 根据 Universal 的版本,应该生成包含所需内容的/dist/server/dist/browser

生成的server.js通常相当大,因为它包含您的大部分应用程序和在渲染过程中使用所需的依赖项。

例如,这是一个简单的例子 Dockerfile

FROM node:12-alpine
WORKDIR /app
COPY ./dist /app/dist
EXPOSE 4000
CMD ["node", "/app/server"]

请注意,我将目标目录保留为dist - 如果更改此文件夹,我相信匹配更改需要在server.ts中完成:

const distFolder = join(process.cwd(), 'dist/{app}/browser');

它在启动节点进程时查看/dist相对于当前工作目录 ( WORKDIR ) 所在的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM