我需要node.js来使用Angularjs吗?

我想在我的网站中使用我的图像编辑工具angular.js

我还需要node.js吗?

我不明白的情况。如果我不需要那个,当nodejs和angularjs在一起?

您不需要NodeJS来创build客户端图像编辑工具。

AngularJS是一个由Google和社区维护的Web应用程序框架,它协助创build单页面应用程序,这些应用程序由客户端的一个带有CSS和JavaScript的HTML页面组成。

但是,如果有一天你会想要上传和存储这些图像在服务器上,并让他们可以由多个客户端访问 – 那么是的,你也将需要一台服务器。 这个服务器可以用NodeJS来制作。

我感到你的痛苦。

对于新来Angular 2开发的人来说,我可以感受到不得不学习服务器端技术的本质上是客户端技术的痛苦。 据我所知:

  1. node.js仅用于pipe理angular度2应用程序的依赖关系。 如果你能以某种方式设法得到这些依赖项,而不使用node.jsnpmjspm那么你可以离线运行和开发你的应用程序。 但是,手动执行这个过程需要花费很长的时间,因为你必须手动下载文件,而这个文件可能有其他的依赖关系,需要重新下载其他文件(是的,我已经去过了)。 node.js或者npm或者jspm就可以自动完成这个过程以及configuration文件( jspm )的所有必要步骤,以便每当在应用程序中使用特定的依赖项时,该特定的依赖项的其他依赖项也将出现在你的系统。
  2. 有些浏览器,特别是谷歌浏览器,为了安全目的限制本地加载的文件,以便在使用文件:协议加载时,Angular 2使用的某些HTML 5技术会产生错误。 所以你需要一个服务器来为你的应用程序提供服务,这样所有可用的HTML 5技术都可以运行。
  3. 因为它提供了一个file watcher api来检测对源代码的改变,所以用于快速应用程序开发的hot-module-reload能力也需要node.js

但是有一种方法可以在不使用node.js的情况下离线开发Angular 2应用程序。

  1. 还记得当我说如果你可以设法获得所有必需的依赖关系,你可以离线运行和开发你的应用程序? 如果您可以以某种方式find或创build一个包含您的应用程序所需的所有依赖关系的包,那么您不需要npm或jspm来为您pipe理依赖关系。
  2. 对于file-access-restriction问题,可以将项目作为扩展加载。 扩展能够使用所有可用的HTML 5技术以及一些强大的api(即使在服务器上运行的应用程序也不可用),同时在开发环境中是本地的。 因此,如果您将应用程序作为扩展应用程序,则无需启动Web服务器即可访问HTML 5技术。
  3. 对于hot-module-reloadfunction,您可以从另一种方式接近它。 不要让Web服务器中的文件监视器监视本地系统中文件的更改,您可以从应用程序本身执行此操作。 由于应用程序可以fetch应用程序所需的xmlhttprequest资源,因此可以定期fetchxmlhttprequest应用程序所需的资源,并将其与某个caching进行比较。 但你怎么知道哪些文件要检查? 您可以在页面中查找linksscriptimg. 如果你使用SystemJS作为模块加载器,那么你可以使用它的registry来查找你的应用程序所需要的文件,但是没有加载到页面中,因为它已经被转译或者其他东西。 虽然所有这些都可能导致系统性能下降,并增加了对非本地代码进行转码或预处理的额外开销,但这项工作可以外包给web worker ,这将释放系统中的主要执行线程以用于应用程序代码。

不要相信我? 这是certificate。

  1. github上的Chrome项目中的Angular包含一个压缩包 ,其中包含开发一个最小的Angular 2应用程序所需的依赖关系(最小的,我指的是在快速入门页面引用的英雄之旅教程)。 因此,如果您使用的是不受node.js支持的系统(是的,例如ChromeOS),或者只是在node.js不可用的受限系统上,则所有必需的依赖关系都可用,而您需要npm或jspm来pipe理所需的依赖关系。
  2. 有一个概念certificate扩展 ,在本地作为一个扩展名为英雄教程(开发文件,打字稿和所有)的旅游。
  3. 该扩展还通过挂接由alexis vincent为SystemJS开发的hmr基元实现了hot-module-reloadfunction。 hot-module-reloadfunction是由一个JavaScript文件启用的,所以如果这个function不需要或占用太多的资源,那么你可以删除违规的代码行。

但是要警惕。

  1. 如果你正在使用这个系统,那么随着技术的发展,你需要一种方法来更新你的开发包,并且它的移动速度非常快(当Angular 2刚刚发布的时候Angular 3的讨论)或者你正在使用的技术开发你的应用程序可能会变得过时,或者在某个地方某个API的变化可能会阻止你的应用程序在将来的function。 由于这些types的包是手动维护的,所以也不能保证依赖关系具有最新的存储库。
  2. 将您的应用程序捆绑为Chrome中的Angular Chrome扩展程序将引入性能瓶颈。 由于代码被转译并且模块被延迟加载,因此您将失去JIT编译和其他性能增强的优势,现代javascript引擎会使用这些增强来优化在浏览器上运行的代码。 但是,如果您在性能上损失惨重,则可以灵活地使用您喜欢开发的技术。总是存在一个折衷。 而且,性能命中只是在代码被加载时才开始。 一旦它被应用程序加载,系统将知道如何实现性能增强。 当你分发你的应用程序时,你真的需要编译所需的资源来利用现代JavaScript引擎的性能增强。
  3. hot-module-reloadfunction目前是一个实施文件观察器的方法,因为没有办法(我可能是错误的)在一个项目(temp1.ts,temp1.css,temp1.htm)使用通用的约定,以获得应用程序所需的所有资源的明确列表,但未加载到主页面上(经过转换或预处理的资源)。

node.js用于在服务器端编写Javascript。 angular.js是一个客户端框架。

你不需要node.js来使用angular.js,但是,你可以安装npm(节点打包的模块)来使用一些很棒的工具,这将使你的开发人员变得更容易。 例如: yoeman这是一个伟大的脚手架工具。 有很多其他的工具可用在这里npm是一个链接到他们的网站了解更多关于angular在正式的angular度网站或angular度youtube通道

不, Angular在客户端使用, Node在服务器端使用。

他们使用一起作为平均堆栈,但没有必要。

你不需要Node.JS来使AngularJS工作。 NodeJS是服务器端,AngularJS是客户端。

如果你是AngularJS的新手 ,我会build议这个教程AngularJS教程 。 在本教程中,您将使用NodeJS,您将理解为什么这两个工作在一起,但没有必要。

不知道你的图像编辑工具如何工作,很难回答。 但是要回答你的问题,不需要Node.js来使用AngularJS。

Angular是一个在客户端Web浏览器中运行的前端JavaScript框架。

节点是一个可以执行javascript的服务,通常用在服务器上,可能用来代替PHP( 就像在MEAN栈中一样 )。 此外,因为节点是一个可以执行JavaScript的服务,所以在开发Angular应用程序来完成诸如缩小CSS和JavaScript以及执行testing等后台任务时,可以在本地计算机中使用它。

因此,如果您的图像编辑工具是在JavaScript中开发的,并且您的应用程序使用了Angular和Node(作为Web服务器),则代码可以在客户端或服务器端执行。

阅读MEAN堆栈,看看Node和Angular在哪里适合。你甚至不需要Node,但是用同样的语言开发所有的东西是很好的。