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

时间:2016-09-08 19:10:43

标签: javascript ruby-on-rails node.js angular

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

  

我想在前端创建一个使用100%Angular 2的应用程序   使用Ruby On Rails的后端REST API,不使用Rails的页面呈现,会话等。

我很担心Angular2如何在幕后工作/运行......我应该如何配置我的Angular2应用程序以在没有NodeJS的情况下使用它?

3 个答案:

答案 0 :(得分:34)

我认为你在这里混淆了一些技术。

服务器

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

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

<强>打字稿

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

虽然(2)绝对是一个选项,而Angular CLI直到最近才使用它,(1)在我看来是更好的选择。 Angular CLI切换到(1),现在使用webpack。 Webpack正在转发并捆绑您的应用,然后将其托管在服务器上。

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

答案 1 :(得分:15)

<强> TL; DR

如果将TypeScript与Angular 2一起使用,则在开发期间只需要Node:

DEV :NodeJS用于将.ts个文件转换为.js个文件。

PROD :生成的.js文件在浏览器中使用 ,NodeJS不再需要 ,除非你也发生了在后端使用它。

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

答案 2 :(得分:2)

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

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