Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在没有节点服务器的情况下运行AngularJS2应用程序_Javascript_Ruby On Rails_Node.js_Angular - Fatal编程技术网

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

Javascript 如何在没有节点服务器的情况下运行AngularJS2应用程序,javascript,ruby-on-rails,node.js,angular,Javascript,Ruby On Rails,Node.js,Angular,是否可以在浏览器中运行Angular 2应用程序,而不使用NodeJS作为服务器。我不确定,但如果我理解正确,最新的浏览器能够编译/理解TypeScript代码,这样我就不必使用任何第三方js库将其编译成纯javascript了 我想创建一个应用程序,使用100%的角度2在前端和 后端RESTAPI使用RubyonRails,不使用Rails的页面呈现、会话等 我有点困惑Angular2在幕后是如何运作的。。。我应该如何配置Angular2应用程序以在没有NodeJS的情况下使用它 我觉得你把一

是否可以在浏览器中运行Angular 2应用程序,而不使用NodeJS作为服务器。我不确定,但如果我理解正确,最新的浏览器能够编译/理解TypeScript代码,这样我就不必使用任何第三方js库将其编译成纯javascript了

我想创建一个应用程序,使用100%的角度2在前端和 后端RESTAPI使用RubyonRails,不使用Rails的页面呈现、会话等


我有点困惑Angular2在幕后是如何运作的。。。我应该如何配置Angular2应用程序以在没有NodeJS的情况下使用它

我觉得你把一些技术混在一起了

服务器

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

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

TypeScript

如果您使用TypeScript编写应用程序,则需要在任何浏览器理解它之前将其转换为JavaScript。您可以这样做(1)在将应用程序部署到服务器之前,或者(2)使用一个像这样的库来实时传输TypeScript

虽然(2)绝对是一个选项,而且直到最近才被使用,(1)在我看来是更好的选项。Angular CLI已切换到(1)并正在使用。Webpack正在传输和捆绑您的应用程序,然后再将其托管到服务器上

希望我能帮你把事情弄清楚一点;DR

如果将TypeScript与Angular 2一起使用,则在开发过程中只需要节点:

DEV:NodeJS用于将
.ts
文件传输到
.js
文件

PROD:生成的
.js
文件在浏览器内部使用不再需要NodeJS,除非您也在后端使用它


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

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


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

非常感谢您的回答:)嗨@SebastianSebald,谢谢您的回答。但我有一个疑问。我制作了angular 2网站的英雄之旅教程,当我完成后,它在本地运行npm start时运行得非常好,但是如果我将它放在服务器上(使用apache),它就不会加载。你知道会发生什么吗?谢谢没有任何堆栈跟踪。但这不是讨论你的问题的地方。请创建一个新问题。你肯定会得到一些帮助。另请注意:
npm start
也可以传输您的文件。确保您使用的是JS输出,而不是TS.AoT,或者提前编译,对于任何研究此问题的人来说都是值得研究的