TypeScript编译选项:模块与目标

use*_*687 22 typescript typescript1.8

试图对模块和目标有一些基本的了解.

我想知道典型的tsconfig.json中模块和目标编译选项之间的区别

{
    "compilerOptions": {
        "module": "es6",
        "sourceMap": true,
        "target": "es6"
    }
}

如果我提供以下选项会发生什么:

module:commonjs,target:es6

module:es6,target:commonjs

module:commonjs,target:commonjs

Vij*_*dar 16

“target”属性用于指定 TypeScript 代码最终编译成的 JavaScript 版本。“module”属性指定您编译的(TS-->JS)代码将使用的模块语法的类型。例如,如果您将模块属性设置为“commonJS”,则编译后的代码将使用“require/module.exports”来导入/导出。然而,模块属性不会影响其余已编译代码。为了清楚起见,请参考这个答案:/sf/answers/4285067671/


mot*_*tss 13

有2种不同的东西。--target只是意味着您使用哪个版本的 ECMAScript 进行编码。--module只是意味着您正在使用哪个模块系统,例如commonjsNode 或 ES 模块,用于支持它的所有模块以及不支持它的模块。

  • “你正在使用”是什么意思?您可以使用模块系统来解决依赖关系,也可以使用模块来打包输出。或者还有其他东西可以“使用”一个或另一个模块系统或语言级别 (4认同)

Pal*_*leo 7

更详细的解释在这里:了解 tsconfig 中的“目标”和“模块”


另请参阅:了解 tsconfig 中的“目标”和“模块”

这是编译器选项文档中的引用:

- 目标

指定 ECMAScript 目标版本:“es3”(默认)、“es5”或“es6”。

- 模块

指定模块代码生成:“none”、“commonjs”、“amd”、“system”、“umd”、“es6”或“es2015”。

  • 只有 'amd' 和 'system' 可以与 --outFile 结合使用。
  • 'es6' 和 'es2015' 值可用于 ES5 或更低版本。

  • 以下是对此模块与目标混淆的更好解释:/sf/ask/2939566801/ (11认同)