当我想创建一个空的(!) - non angular-cli - app时,我发现很难知道我应该使用哪些包/库。
当我在npmjs中搜索angular2
时,我得到了不需要的结果,我需要点击:
为了到达messy list,我不知道一个模块是否可以与另一个模块一起使用:
另外 - 即使我使用@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文件:
这非常不友好。 (更不用说包中的更改经常发生 - 但互联网永远不会忘记)
我不想使用angular-cli,也不想下载我不知道他们做什么的东西(如果我需要的话)。
所以我问:
问题
jQuery有一个download builder page,允许您根据需要选择下载内容!我如何只下载(for 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: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>}似乎合法采取) - 下载?
有人可以做一些澄清,还是我完全错了?
答案 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>