2016-11-17 268 views
4

根據理解,Node js使用CommonJS模塊模式,而在CommonJS 模式中,我們使用require()來導入節點模塊。在Angular2中導入模塊

在Angular 2應用程序開發中,我們使用了@ angular/core,@ angular/common等節點模塊 。

我的問題是:

爲什麼我們用[這是ES6模塊語法] 代替CommonJS的需要()語法「從‘@角/芯’進口{}」中angular2訪問節點模塊 代碼文件。

回答

4

原因是Angular2是用TypeScript編寫的。

打字稿是ES2015的一個超集,並希望儘可能接近ES2015建議的語法越好。這就是爲什麼您從語法中使用ES2015 import {}的原因。

然而,打字稿還帶有一個內置的transpiler(TSC)。這意味着你編寫打字稿代碼,但針對特定的EcmaScript版本的tsconfig.json

  • 當靶向ES5,展望transpiled代碼,你會 清楚地看到,在幕後打字稿將轉化進口{}從要求( )在傳輸的文件中。
  • 當transpiled代碼靶向ES6,當然,你的進口量將ES2015進口。要知道,靶向ES6時,您將需要babel到transpile您ES6模塊ES5或使用System.js加載在瀏覽器中ES6模塊。

乾杯