2017-03-14 32 views
1

当我想要创建一个空的(!) - 应用程序时,我很难知道应该使用哪些程序包/库。Angular2 npm包 - 我怎么知道要下载什么?

由开始的时候我在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,它允许您选择要下载 - 根据您需要的东西。我如何才能下载(仅用于angular2)我需要的组件(及其依赖项组件)?

例如 - 我一直在寻找的system.js

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:[email protected]', 
     'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js', 
     'ts':      'npm:[email protected]/lib/plugin.js', 
     'typescript':    'npm:[email protected]/lib/typescript.js', 

    }, 

at this basic angular 2 - plunker的地图部分plunker的作者是如何知道哪些软件包(除了common/core/http/router包似乎合法的取) - 下载?

有人可以请澄清一下还是我完全错了?

+1

为什么不使用现有的快速启动/种子项目? – jonrsharpe

+1

@jonrsharpe作为一名高级开发人员 - 我不觉得有点奇怪,我想知道我在下载什么 - 尤其是从头开始的时候。并且我期望事情会更容易找到 - 除非 - 再次 - 我做这一切都是错误的。 –

+2

那你为什么不从'@ angular/core'开始,看看你得到了什么错误? – jonrsharpe

回答

1

我明白你的痛苦,这是我在与Angular合作一年后所了解的。

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

因此,首先,你需要安装的打字原稿:

npm install typescript. 

2-角已经投入了很多的努力,以单独的模块,但其中一些仍相互交织,但总体而言,这里是主要的你需要开始。

'@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。

你,因为角被大量使用其所有changeDetection需要Zonejs(为什么地球上没有它们包括在核心呢?!)

就是这样。


如何处理打字稿代码?你需要运行tcs来编译它,为此你需要一个tsconfig.json(谷歌它)。

现在,如果您需要在express服务器上运行此代码,您可能需要一个任务来观察您的代码并将其编译为ya,这些日子webpack似乎非常有前途并且汇总。

所以如果你想要的话,你需要安装webpack,你可以把它看作是一个复杂的任务运行者,他可以将生成的+ minifed代码绑定到ya。

而且webpack还提供了一个本地开发服务器(无需手动安装express或...),它被称为webpack-dev-server,您可以安装它,并且会照顾您的代码并运行所有webpack作业。

我建议看看AngularClass的Angular2种子,尝试删除所有不必要的东西(因果报应,量角器,所有的爵士乐),然后从那里。

一般来说,这是一个有点很难做到所有这些,我会建议使用CLI或AngularClass的种子。

顺便说一句,除非你导入它们,否则cli或这些种子中的那百万个模块都不会捆绑在一起,所以除非你将其导入到项目中,否则无论你有多少项npm install

相关问题