如何将Angular Universal 9应用程序部署到生产中

时间:2020-05-19 18:42:22

标签: node.js angular

我们有一个angular 9应用程序,当将其部署到IIS服务器中时效果很好。

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

现在,我们需要了解如何将具有ssr的应用程序部署到生产环境中。我们可以在生产服务器上执行所有操作,因此安装软件不受限制。

仅要求生产Web服务器必须保持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个文件夹: dist 远程服务器

第二个包含main.js

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

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

我需要这个吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我回答自己,这就是我所做的: ng build --configuration production --index = / src / index / production / index.html 然后 ng运行my-app:server:production 我将生成的文件夹“ dist”和“ dist-server”复制到网站的根目录中 在Web服务器中,我设置了一个规则,以将所有内容代理到端口4200上的nodeserver,并使用以下命令启动它: 节点dist-server / main.js 即使我不明白为什么我只在视图源中执行ctrl + f5而不是第一次访问页面时才看到渲染的html,这似乎还是可以的