[英]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.