繁体   English   中英

tsconfig.json 中模块类型的区别

[英]Difference between module type in 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”、“无”

问题:我应该使用哪个值以及何时使用它?

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 模块(CommonJS Modules/1.1 的扩展)是服务器端环境中的领先模式。

通用模块定义 (UMD)是一组样板配方,试图弥合 AMD 和 node.js 之间的差异,允许工程师以单一格式编写代码库,而不是同时编写两种格式或转换为另一种格式一个构建步骤。

ES5 是您曾经看到的普通 JavaScript。

您将在 Angular2 中使用 ES6,也称为 ECMAScript 2015。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM