如何在没有Node服务器的情况下运行AngularJS2应用程序

是否有可能在浏览器中运行Angular 2应用程序而不使用NodeJS作为服务器。 我不确定,但是如果我理解正确,最新的浏览器能够编译/“理解”TypeScript代码,所以我不必使用任何第三部分js库编译成纯JavaScript?

我想在前端创build一个使用100%Angular 2的应用程序,并使用Ruby On Rails为后端REST API创build一个应用程序,而不使用Rails的页面渲染,会话等。

我有点困惑它如何Angular2工作/幕后运行…我应该如何configuration我的Angular2应用程序使用它没有NodeJS?

我想你在这里混合了一些技术。

服务器

您可以在任何可以托pipe静态文件的服务器上运行Angular应用程序。 节点没有什么特别之处。 所以是的,你可以使用ruby。 或者一个Apache,nginx,lighttpd等

原因是JavaScript在客户端运行。 服务器的响应只是将JS / HTML / CSS文件发送到正在访问您的站点的客户端。

打字稿

如果您正在使用TypeScript编写应用程序,则需要在任何浏览器理解之前将其编译为JavaScript。 在将应用程序部署到服务器之前,您可以执行此操作(1),或者(2)使用像System.js这样的库,可以实时传输TypeScript。

虽然(2)绝对是一种select, Angular CLI直到最近才使用它,(1)在我看来是更好的select。 Angular CLI切换到(1),现在使用webpack 。 Webpack 托pipe在服务器上之前正在转发和捆绑应用程序。

希望我能为你解决一些问题。

TL; DR

如果您在Angular 2中使用TypeScript,则只需在开发期间使用Node:

开发 :NodeJS用于将.ts文件转换为.js文件。

制作 :只有生成的.js文件将被使用,NodeJS不再是必需的 ,除非你也在后端使用它。

注意 :如果你只在开发中使用普通的JS,你甚至不需要Node

您可以使用任何服务器端技术,包括Asp.Net Core,Node.Js,PHP来服务js,html和css内容。

在IDE中构build应用程序时,Node.js将.ts文件转换为.js文件。