我很好奇2017年4月最现代的方式是使用外部配置构建一个Angular 2应用程序进行部署?
遵循Build Once Deploy Anywhere的理念,我想弄清楚如何将我的Angular 2应用程序打包为Docker镜像,我可以将其放到任何服务器上并从外部进行配置.
我已经使用此应用程序的大多数其他组件(包括Spring Boot后端)完成此操作,但是使用Angular 2执行此操作的最佳方法很难确定,因为在beta版本之间框架发展如此之大,以至于很多信息都是外的日期.
我有一个带有NPM的Angular 2.4.9,用于在Node Docker容器中运行的包管理,作为具有特定环境的JIT应用程序.在构建时将其烘焙到映像中.我想获得AoT编译的大小和速度优势以及最终的缩小和其他下载大小增强,但是AoT将environment.ts文件的内容直接烘焙到main.bundle.js中,所以根本没有办法之后改变它ng build
Angular2-webpack-starter项目看起来非常过时,并且与Angular-CLI 无关,但是这里有这个方法,它似乎设置了引用OS环境变量的config/webpack.ENV.js文件.我觉得环境变量对于很多应用程序来说有点过于复杂,但它总比没有好.但是我如何在Angular-CLI术语中应用它,还是有更好的方法?
据我所知,Angular-CLI过度抽取webpack来直接访问webpack和插件配置以遵循这种方法.但是我可以在我的环境中引用process.env.ts和Bob是你的叔叔还是比这更复杂?
我需要破解打开main.bundle.js之间改写位var environment = {和//# sourceMappingURL=environment.js.map?对于像Angular这样受欢迎的东西,这似乎是不必要的hacky.
我们想在不同环境中使用Docker镜像部署我们的Angular 2应用程序(登台/测试,制作......)
在本地开发时,我们通过http:// localhost:8080连接到后端REST API,但是当我们在不同的环境中部署时,我们希望使用相同的Docker镜像并连接到不同的REST API端点.
什么将是首选的方式注入该配置成在运行时多克尔容器?
有没有办法通过环境变量来做到这一点?
我们可以通过包含类似内容的纯文本文件来完成此操作
{
"BASE_URL": "https://api.test.example.com"
}
Run Code Online (Sandbox Code Playgroud) 这是我第一次尝试部署Angular2应用程序.我想设置API端点的URL,我希望它在每个环境中都有所不同.
有没有办法制作ng版本或任何其他工具,允许在部署之前为我设置?
在asp.net核心中,我可以使用<environment>标签有条件地在我的布局html页面中包含css/js :
<environment names="Development,Staging">
<script type="text/javascript" href="js/debug.js"></script>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</environment>
<environment names="Production">
<link rel="stylesheet" type="text/css" href="css/style.min.css" />
</environment>Run Code Online (Sandbox Code Playgroud)
我怎样才能在角度2中实现这一点?我正在谈论的css/js文件是站点范围的,而不是特定于组件的
(PS.我是角度2的新手)