2016-12-26 22 views
4

模塊類型之間的區別在tsconfig.json在tsconfig.json

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
    } 
} 

我無法理解以下module類型之間的差異:

「CommonJS的」, 「AMD」, 「UMD」, 「系統」, 「ES6」, 「ES2015」, 「無」

問:我應該使用什麼時候應該使用哪個值?

回答

2

CommonJS的圖案(或的NodeJS):

var someOtherFunction = require('./someOtherFunction.js'); 
exports.add = function() { 
    var sum = 0, i = 0, args = arguments, l = args.length; 
    while (i < l) { 
     sum += args[i++]; 
    } 
    return sum; 
} 

ES6圖樣:

import someOtherFunction from './someOtherFunction.js'; 

export function add() { 
    var sum = 0, i = 0, args = arguments, l = args.length; 
    while (i < l) { 
     sum += args[i++]; 
    } 
    return sum; 
} 

AMD圖樣:

define(['someOtherFunction'], function() { 
    return function() { 
     var sum = 0, i = 0, args = arguments, l = args.length; 
     while (i < l) { 
      sum += args[i++]; 
     } 
     return sum; 
    }; 
}); 

異步模塊定義(AMD)是最流行的對於客戶端代碼,而node.js模塊(C的擴展ommonJS Modules/1.1)是服務器端環境中的領先模式。

通用模塊定義**(** UMD)**是一組試圖彌合AMD和node.js之間差異的樣板配方,允許工程師以單一格式創作其代碼庫,而不是作者在這兩種格式中或在構建步驟中轉換爲其他格式。

ES5是你見慣了普通的JavaScript。

你會使用ES6的Angular2,也被稱爲ECMAScript中使用2015年

+0

ES6是它支持所有新老瀏覽器 – kokadwarprafulla

+1

顯然不是,但你確定目標=「ES5」,這意味着它將被編譯爲es5,這是由大多數瀏覽器支持的。所以,你沒事 – Milad

+0

這** **模塊類型更加靈活或支持使用任何瀏覽器 – kokadwarprafulla

相關問題