【问题标题】:Angular PreRendering / Ng Universal deploymentAngular PreRendering / Ng Universal 部署
【发布时间】:2020-02-20 01:59:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: node.js angular node-modules server-side-rendering


    【解决方案1】:

    您只需将/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) 所在的位置。

    【讨论】:

      猜你喜欢
      • 2018-08-08
      • 2019-04-28
      • 2019-10-02
      • 1970-01-01
      • 2020-08-14
      • 1970-01-01
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      相关资源
      最近更新 更多