在Tconfig.json

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

我无法理解以下module种类型之间的区别:

"commonjs"、"amd"、"umd"、"系统"、"es6"、"es2015"、"无"

Question:我应该使用哪个值,何时使用?

推荐答案

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;
    };
});

Asynchronous Module Definition (AMD)是最流行的客户端代码,而node.js模块(CommonJS模块/1.1的扩展)是服务器端环境中的主流模式.

Universal Module Definition (UMD)是一组样板食谱,试图弥合AMD和node之间的差异.js,允许工程师以单一格式编写代码库,而不是以两种格式编写,或在构建步骤中转换为另一种格式.

ES5是常见的JavaScript.

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

Node.js相关问答推荐

如何在MongoDB中更新嵌套数组

为什么在导出的函数中调用node-sqlite3中的数据库方法时不起作用?

FiRestore UPDATE方法引发错误:&Quot;错误:13内部:收到代码为1&Quot;的RST_STREAM

使用单个 MongoDB 查询更新多个元素

几个 lambda 共有的函数

DynamoDB 分页数据检索

运行 cypress 测试时如何指定 .env 文件用于我的开发服务器?

如何避免在 mongodb 聚合中查找重复结果?

当我try 从本地主机发布新产品时收到错误消息

在系统启动时启动本地 node 服务器

将 express js app.use() 移动到另一个文件

在 gatsby 中安装软件包时不推荐使用的错误

Node.js + Express + Handlebars.js + 局部视图

如何使用 Puppeteer 从输入中删除现有文本?

Passport 登录和持久会话

ChildProcess 关闭、退出事件之间的区别

Node.JS 中的基本 HTTP 身份验证?

node.js 中存储的模块变量在什么范围内?

如何从 Node.js 中的 URL 获取

NodeJS 中的 HTTPS 请求