2016-12-26 5 views
4

In tsconfig.jsonUnterschied zwischen Modultyp in tsconfig.json

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

ich nicht den Unterschied zwischen folgenden module Typen verstehen:

"Commonjs", "amd", "umd", "System", "es6", "es2015", "none"

Frage: Welche Wert soll ich verwenden und wann sollte ich es verwenden?

Antwort

2

Commonjs Muster (oder 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 Muster:

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 Muster:

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

Asynchronous Module Definition (AMD) ist die beliebteste für clientseitigen Code, während node.js-Module (eine Erweiterung zu C ommonJS Modules/1.1) ist das führende Muster in serverseitigen Umgebungen.

Universelle Moduldefinition (** UMD) ** ist eine Zusammenstellung von Standardrezepturen, die die Unterschiede zwischen AMD und node.js zu überbrücken versuchen, sodass Entwickler ihre Codebasen in einem einzigen Format und nicht als Autor erstellen können in beiden Formaten oder in einem Build-Schritt in das andere Format konvertieren.

ES5 ist das normale Javascript, das Sie bisher gesehen haben.

Sie ES6 für Angular2 verwenden würde, die auch als ECMAScript bekannt 2015.

+0

mit ES6 Ist es – kokadwarprafulla

+1

Offensichtlich nicht, an alle alten und neuen Browser unterstützt, aber Sie definieren target = „ES5“, was bedeutet, Es wird zu es5 kompiliert, das von den meisten Browsern unterstützt wird. So ist alles in Ordnung – Milad

+0

welche ** Modul ** Typ ist flexibler oder unterstützt für jeden Browser zu verwenden – kokadwarprafulla

Verwandte Themen