Javascript Angular2和node.js

Javascript Angular2和node.js,javascript,node.js,angular,Javascript,Node.js,Angular,我刚刚开始阅读angular2快速入门,注意到它使用了npm、node和typescript。我想知道node.js在angular2中有什么用途?angular不只是一个客户端框架吗?那么node.js的用途是什么?node.js到底在做什么?在快速入门中,它不会向您展示如何在没有node.js的情况下使用angular2。所以我有点困惑,因为在我看来angular只是一个客户端框架 谢谢你的澄清 Angular2是一个客户端框架,它不需要节点来工作。 混淆来自typescript,因为typ

我刚刚开始阅读angular2快速入门,注意到它使用了npm、node和typescript。我想知道node.js在angular2中有什么用途?angular不只是一个客户端框架吗?那么node.js的用途是什么?node.js到底在做什么?在快速入门中,它不会向您展示如何在没有node.js的情况下使用angular2。所以我有点困惑,因为在我看来angular只是一个客户端框架


谢谢你的澄清

Angular2是一个客户端框架,它不需要节点来工作。 混淆来自typescript,因为typescript编译器在NodeJ上运行。请注意,typescript支持ES6,它引入了对具有和功能的模块的支持

NodeJS成为前端开发周期中不可分割的一部分,因为它提供了许多用于构建应用程序、任务运行程序、编译器、测试框架等的工具

PS:有一个专门用于javascript的角度文档:

您可以从主标题下的下拉菜单切换语言。遗憾的是,目前大多数文档都是为Typescript编写的。
您可以下载已经编译好的angular2源代码,并在没有节点的情况下开始使用它。

事实:当然,angularJS是一个客户端框架。但是NODEJS不是服务器端框架,它是一个提供JavaScript运行时环境的平台

为什么在客户端开发中使用NodeJS:

  • 在npm(节点包管理器)的帮助下,它提供了对网页中要使用的所有JS库(例如Angular)的即时访问。因此,使用
    npm安装包\u name--save安装任何所需的库。所以,没有必要学习鲍尔
  • 可以编写和创建观察者。因此,不需要吞咽或咕噜
  • 您可以安装任何实时重新加载节点模块,以便实时重新加载在客户端应用程序中所做的更改
Angular2(JavaScript)文档中使用的节点:

  • 创建了一个
    package.json
    文件,其中包含客户端应用程序所需的所有库
  • 接下来只需点击
    npm安装
    ,所有需要的库都会下载到本地机器的
    node\u modules
    文件夹下
  • 因此:
  • 安装名为:
    lite server
    的节点模块,该模块为您的web应用提供服务,并在更改时实时重新加载。它由
    npm start
    检查package.json中的脚本部分执行
  • 因此,对于进一步的开发,您只需关注您的应用程序,并下载您可以使用的任何客户端库,如:
    npm install jQuery--save

归根结底,NODEJS只需一个package.json文件就可以让您的生活变得更轻松。

我认为Angular2作为NPM模块提供的原因在于TypeScript编译

编译器需要
d.ts
文件来执行模块契约。此外,当您在
tsconfig.json
文件中为
node
指定
moduleResolution
属性时,它将通过节点加载它们:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node", // <-----
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  },
  "exclude": [
    "node_modules",
    "typings/main",
    "typings/main.d.ts"
  ]
}
{
“编译器选项”:{
“目标”:“es5”,
“模块”:“commonjs”,

“moduleResolution”:“节点”,//谢谢你的澄清,我对这一切都是一个非常初学者。我做了一些node.js和express.js,并且记得大多数时候你会做一些类似node app.js的事情来启动它。但是在angular2 quickstart中,你会运行运行lite server的npm start…所以在生产中,我应该如何启动它?我尝试了node app/app.component.js或node index.html,但显然这不起作用……在生产环境中,我不打算使用lite服务器,而是使用类似nginx的东西,例如……当然,在生产环境中,您只需要提供所需的index.html和rest JS文件。因此,您可以使用nginx来提供静态文件(html/JS/CSS)因为它非常快。或者您可以创建自己的nodeJS服务器来为静态文件提供服务。此设置用于开发环境。在生产中,您可以将所需的文件(HTML/JS/CSS)放在dist文件夹下并提供服务。使用您选择的web服务器。