Angular 5在多个站点上进行生产构建部署
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Angular 5在多个站点上进行生产构建部署相关的知识,希望对你有一定的参考价值。
Angular 5在多个站点上进行生产构建部署
想要生成一个应该适用于任何位置/域的角度构建。这可以通过单个构建生成来实现。
我使用下面的命令生成构建
ng build --prod --base-href="www.site1.com/app-name/web"
其他网站也是如此
ng build --prod --base-href="www.site2.com/app-name/web"
ng build --prod --base-href="www.site3.com/app-name/web"
我想生成一次构建,以便我可以在多个位置进行部署。
任何人遇到过。?
不要在base-href
中指定整个URL。只需使用/app-name/web
--base-href
flag帮助您将<base href="/">
标签添加到您的html文件。这有助于解决应用程序中资源(REST API,图像,JS等)的相对URL。
我不清楚你的基地href中有什么“www.site1.com”?它是目录或服务器名称?
通常对于任何Web应用程序URL,您有以下重要部分:
[protocol]://[HostName]:[port]/[AppName]
如果没有提供端口,它将使用默认端口,具体取决于协议(http使用80作为默认端口)
几个例子: -
http://www.site1.com/app-name/web
http://www.site1.com/my-app/web
http://www.site2.com:8080/app-name/web
https://www.site3.com/my-app
需要注意的重要一点是,您的Web服务器公开了可以托管Web应用程序的端点(协议+主机+端口)。然后,您的应用程序可以在不同的路径下访问其他子应用程序(请参阅示例URL#1和#2)。
现在,如果您尝试在不同的Web服务器上运行相同的应用程序,那么只需将应用程序目录提供给base-href参数即可。
如果您尝试在同一Web服务器下运行多个子应用程序,则必须生成不同的构建,为--base-href
参数提供不同的值。
你可以改变你的package.json看起来像
"scripts": {
...
"build_site1": "ng build --prod --base-href='www.site1.com/app-name/web'--output-path=dist/site1",
"build_site2": "ng build --prod --base-href='www.site2.com/app-name/web'--output-path=dist/site2",
"build_site3": "ng build --prod --base-href='www.site3.com/app-name/web'--output-path=dist/site3",
"build_all": "npm run build_site1 && npm run build_site2 && npm run build_site3"
}
然后跑
npm run build-all
您将在不同的子文件夹或dist
中拥有所有已构建的项目
生成构建应用程序构建的单个命令
ng build --prod --base-href="/cms-dev/" --output-hashing=all
如果您想要忽略任何Build问题,可以在命令中添加以下选项。 --aot = FALSE
以上是关于Angular 5在多个站点上进行生产构建部署的主要内容,如果未能解决你的问题,请参考以下文章
在同一个Angular Workspace中将多个Angular应用程序部署到Azure
如何使用 webpack 和 angular2 为生产部署代码