【问题标题】:How to deploy Angular Universal 9 app to production如何将 Angular Universal 9 应用程序部署到生产环境
【发布时间】:2020-05-19 18:42:22
【问题描述】:

我们有一个 Angular 9 应用程序,在部署到 IIS 服务器时效果很好。

我们还有这个应用程序的一个分支,其中另一家公司集成了 Universal。

现在我们需要了解如何将使用 ssr 的应用部署到生产环境中。我们可以在生产服务器上做所有事情,因此我们在安装软件方面没有任何限制。

需要的只是生产网络服务器必须保持 IIS。这并不意味着我们不能将节点用于 SSR。 我们不了解进行生产构建的确切步骤是什么,然后,哪些文件夹,放在我们 iis 站点根目录中的文件,以及如何运行节点(如果需要)以及使用哪个文件来渲染完整的 ssr应用程序。

这是 package.json 的脚本部分:

 "scripts": {
    "ng": "node --max_old_space_size=8192 node_modules/@angular/cli/bin/ng",
    "start": "npm run ng -- serve",
    "serve:server": "node ./dist-server/main.js",
    "serve:server:debug": "node --inspect ./dist-server/main.js",
    "start:server": "npm run build:server && node ./dist-server/main.js",
    "start:server:debug": "npm run build:server && node ./dist-server/main.js --inspect",
    "build": "npm run ng -- build",
    "build:server": "ng run my-app:server:production",
    "ssr:watch": "ng run my-app:serve-ssr:production",
    "demo:ssr:watch": "ng run universal-demo:serve-ssr:dev",
    "build-all": "npm-run-all build-production build:server-app:prod",
    "start:express-server": "ts-node -P ./src/tsconfig.server.json ./server.ts",
    "prerender": "ts-node -P ./server.tsconfig.json ./prerender.ts",
    "prerender:debug": "ts-node -P ./server.tsconfig.json --inspect ./prerender.ts",
    "test": "npm run ng -- test",
    "lint": "npm run ng -- lint",
    "e2e": "npm run ng -- e2e",
    "analyze": "webpack-bundle-analyzer dist/stats.json",
    "compodoc": "npx compodoc -p src/tsconfig.app.json",
    "build:stats": "ng build --stats-json --prod",
    "build-preprod": "ng build --configuration preprod --index=/src/index/preprod/index.html",
    "build-production": "ng build --configuration production --index=/src/index/production/index.html",
    "build-staging": "ng build --configuration staging --index=/src/index/staging/index.html"
  }

我知道我们需要生成一个生产版本,但是这里的命令太多,我不知道哪一个是正确的生产版本。如果没有 SSR,我会使用“npm run build-production”来制作产品包。将创建一个 dist 文件夹,我会将其全部内容复制到 IIS 中我的站点的根文件夹。

我尝试了其中一些命令。他们生成了 2 个文件夹: 距离 远程服务器

第二个包含main.js

现在,我必须将什么复制到服务器,IIS 中站点根目录的文件夹树是什么,以及如何使用节点服务器安装/配置/运行?

在这里我还发现了一些关于使用节点配置 iis 的信息: Link

我需要这个吗?

感谢您的帮助

【问题讨论】:

    标签: node.js angular


    【解决方案1】:

    我回答自己,这就是我所做的: ng build --configuration production --index=/src/index/production/index.html 然后 ng 运行 my-app:server:production 我将生成的文件夹“dist”和“dist-server”复制到我网站的根目录中 在网络服务器中,我设置了一个规则,将所有内容代理到端口 4200 上的节点服务器,然后我开始使用: 节点 dist-server/main.js 即使我不明白为什么我只在查看源代码中执行 ctrl+f5 而不是第一次访问页面时才看到呈现的 html,它似乎也能工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-31
      • 2016-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多