我们有一个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
我需要这个吗?
感谢您的帮助
答案 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,这似乎还是可以的