【发布时间】: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
我需要这个吗?
感谢您的帮助
【问题讨论】: