2016-07-21 71 views
0

我有使用快速啓動從angular.io的角2應用進行的,我使用SystemJs的加載模塊(見QuickStart guide),我有以下問題:角2模塊加載,進口

  1. import { Component} from '@angular/core'; 什麼這種說法在做什麼?是加載@ angular/core還是隻加載@ angular/core的組件? @ angular/core如何在這裏加載,因爲我沒有包含以任何方式加載角的腳本標記?
  2. 在Angular 2中systemJs的用途是什麼?
  3. 我的es6代碼如何轉換爲es5?
  4. systemJs是否也捆綁了所有js文件?或者每個角度模塊通過ajax加載?
+0

你是什麼意思3.我假設你不想要一個完整的解釋如何從一種語言翻譯成另一種工作。 –

+0

編號不完整的解釋。快速入門是如何發生的?通過systemjs或任何其他庫?它是自動發生還是我將不得不明確地進行傳譯? – user1502901

回答

0
  1. 這實際上並沒有太大的作用。它只在當前文件中知道Component,並指向Component的聲明位置。
0

1:從文件路徑@angular/core:這是導入組件類到當前文件

2:系統JS是它加載更多捆綁他們

如果所有的JavaScript模塊一個模塊加載器您在package.json文件中檢查了angular2的相關性 您會發現@angular/core路徑是依賴項。所以@角/芯內的組件類的定義:

聲明import {Component} from @angular/core說:遵循的路徑,@angular/core,使Component類可用於當前文件

+0

它是如何加載@ angular/core來找到它的路徑導入Componenet? – user1502901

1

爲什麼不看看是可以獲得的javascript從打字稿中翻譯出來?

  1. import'Component'from'@ angular/core';

做兩件事情:如果你在打字稿中有commonjs作爲模板格式,則轉換爲require調用。

var core_1 = require('@angular/core'); 

core_1.Component({}) 

其次,它告訴編譯器在@ angular/core中查找Component類的類型。默認情況下,在node_modules文件夾中查找導入中的所有非相對路徑。因此,它會看:

node_modules/@angular/core/index.d.ts爲@角/芯

  • SystemJs被用作在運行時模塊加載程序。瀏覽器在生產中只看到了轉譯的javascript。所以它必須知道,在哪裏尋找依賴關係,這是在systemjs.config.js中定義的。
  • 其中@ angular/core的軟件包被定義爲默認查找node_modules。在這裏,您還可以定義從CDN加載依賴項,並且node_modules中的版本僅用於將Typescript編譯爲Javascript。

    1. Typescript編譯器執行從ES6到ES5的轉換。請參閱打字稿配置:tsconfig.json

    2. SystemJs沒有進行捆綁,它實際上可以加載捆綁。捆綁您的JavaScript需要在持續集成中完成,例如通過咕嚕聲或吞嚥。