我有一个使用angular.io中的Quickstart创建的Angular 2应用程序,我使用SystemJs进行模块加载(请参阅QuickStart guide),我有以下问题:
import { Component} from '@angular/core';
这句话在做什么?它是加载@ angular / core还是仅从@ angular / core加载Component?
@ angular / core是如何在这里加载的,因为我没有包含以任何方式加载角度的脚本标记? 答案 0 :(得分:1)
为什么不查看从打字稿中转换出来的javascript?
有两件事:如果你在typescript中将commonjs作为模块格式,则将其透明为require调用,例如
{{1}}
其次它告诉编译器在@ angular / core中查找类Component的类型。默认情况下,导入中的所有非相对路径都在node_modules文件夹中查找。所以它会看:
对于@ angular / core ,node_modules/@angular/core/index.d.ts
@ angular / core的包被定义为默认查找node_modules。在这里,您还可以定义从CDN加载依赖项,node_modules中的版本仅用于将Typescript编译为Javascript。
Typescript编译器执行从ES6到ES5的转换。请参阅typescript config:tsconfig.json
SystemJs没有进行捆绑,它实际上可以加载捆绑包。捆绑您的JavaScript需要在持续集成中完成,例如通过grunt或gulp。
答案 1 :(得分:0)
Component
已知,并指向声明Component
的位置。答案 2 :(得分:0)
1:来自文件路径@angular/core
:它将Component类导入当前文件
2:系统js是一个模块加载器,它加载所有javascript模块更多的捆绑它们
如果您在package.json
文件中检查了angular2的依赖关系
您将找到@angular/core
路径作为依赖项。所以在@ angular / core中定义了Component类:
声明import {Component} from @angular/core
说:按照@angular/core
的路径,使Component
类可用于当前文件