Angular2 npm包 - 我怎么知道下载什么?

时间:2017-03-14 10:54:24

标签: javascript angularjs angular npm

当我想创建一个空的(!) - non angular-cli - app时,我发现很难知道我应该使用哪些包/库。

当我在npmjs中搜索angular2时,我得到了不需要的结果,我需要点击:

enter image description here

为了到达messy list,我不知道一个模块是否可以与另一个模块一起使用:

enter image description here

另外 - 即使我使用@angular/core js,我也不知道为了使用其他组件我应该包含哪些文件。

我们举个例子 - 我想使用HTTP - The messy list doesn't contain any http in there当我转到docs时 - 我看到它来自@angular/http然后我再去npmjs并输入@angular/http然后我使用unpkg.com来访问文件系统(使用unpkg.com的chrome扩展名)只是为了下载js文件:

enter image description here

非常不友好。 (更不用说包中的更改经常发生 - 但互联网永远不会忘记

我不想使用angular-cli,也不想下载我不知道他们做什么的东西(如果我需要的话)。

所以我问:

问题

jQuery有一个download builder page,允许您根据需要选择下载内容!我如何只下载(for angular2)我需要的组件(及其依赖组件)?

例如 - 我正在查看system.js

at this basic angular 2 - plunker地图部分
  map: {
      // our app is within the app folder
      app: 'app',

      // angular bundles
      '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
      '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
      '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
      '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
      '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
      '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
      '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
      '@angular/router/upgrade': 'npm:@angular/router/bundles/router-upgrade.umd.js',
      '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
      '@angular/upgrade': 'npm:@angular/upgrade/bundles/upgrade.umd.js',
      '@angular/upgrade/static': 'npm:@angular/upgrade/bundles/upgrade-static.umd.js',

      // other libraries
      'rxjs':                      'npm:rxjs@5.0.1',
      'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js',
      'ts':                        'npm:plugin-typescript@5.2.7/lib/plugin.js',
      'typescript':                'npm:typescript@2.0.10/lib/typescript.js',

    },

plunker的作者是如何知道哪些软件包(除了common/core/http/router软件包除了{/ 1>}似乎合法采取) - 下载?

有人可以做一些澄清,还是我完全错了?

1 个答案:

答案 0 :(得分:1)

我理解你的痛苦,这是我在与Angular合作一年后所知道的。

1- Angular2是用Javascript编写的,所以理论上你应该能够在index.html中添加一个脚本并启动你的应用程序,但这不是首选的,也不是完全记录和支持的,几乎所有的SO问题都是在typescript撰写并回答。

首先,您需要安装打字稿:

 npm install typescript.

2- Angular已经花费了很多精力来分离模块,但是其中一些仍然是交织在一起的,但总的来说,这是你需要开始的主要部分。

  '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
  '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
  '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
  "rxjs": "^5.1.0",
  "zone.js": "^0.7.6"

你需要这五个人来启动一个应用程序。

你需要核心,因为它是核心。

您需要platform-browser-dynamic来引导您的应用模块,否则您将无法运行它。

platform-browser-dynamic本身需要platform-browser

你需要rxjs,因为几乎每个异步函数都会使用angular。

你需要Zonejs,因为Angular正在大量使用它来进行所有的changeDetection(为什么它们不会将它包含在核心呢?!)

就是这样。

你会对打字稿代码做什么?你需要运行tcs来编译它,为此你需要tsconfig.json(google it)。

现在,如果你需要在快速服务器中运行这个代码,你可能需要一个任务来观察你的代码并为ya编译它,这些天webpack似乎非常有前途和汇总。

因此,如果您需要,您需要安装webpack,您可以将其视为一个复杂的任务运行者,可以为ya捆绑生成的+微型代码。

webpack还提供了一个本地开发服务器(无需手动安装express或......),这个服务器名为webpack-dev-server,您可以安装它,它将负责监视您的代码并运行所有webpack作业

我建议看看AngularClass的Angular2种子,尝试删除所有不必要的东西(业力,量角器,所有那些爵士乐),然后从那里开始。

一般来说,完成所有这些操作有点困难,我建议使用cli或AngularClass的种子。

顺便说一下,除非你导入它们,否则cli中的百万个模块或任何种子中的任何一个都不会被捆绑,所以除非你在项目中导入它,否则你npm install有多少事情并不重要。 / p>