尝试对模块和目标有一些基本的了解。
我想知道模块和目标编译选项之间的差异在一个典型的tsconfig.json
<>之前{" compilerOptions ": {"模块":"es6","sourceMap":没错,"目标":"es6"}}之前如果我提供以下选项会发生什么:
module: commonjs, target: es6
module: es6, target: commonjs
module: commonjs, target: commonjs
有两种不同的东西。--target
仅仅表示您使用哪个版本的ECMAScript进行编码。--module
简单地表示您正在使用的模块系统,例如commonjs
用于Node或ES模块用于所有支持它和不支持它的模块。
更详细的解释在这里:和";module"
参见:理解"目标"one_answers";module"在tsconfig。
下面是编译器选项文档中的一段话:
,
指定ECMAScript目标版本:'es3'(默认),'es5'或'es6'。
<<p> ——模块/strong>指定模块代码生成:'none', 'commonjs', 'amd', 'system', 'umd', 'es6',或'es2015'。
- 只有'amd'和'system'可以和——outFile一起使用。
- 'es6'和'es2015'值可以在目标为ES5或更低时使用。
<target"属性用来指定TypeScript代码最终编译成的JavaScript版本。"module"属性指定编译后的(TS—>JS)代码将使用的模块语法类型。例如,如果你将模块属性设置为"commonJS",编译后的代码将使用"require/module.exports"导入/导出。但是,模块属性不会影响编译后的其余代码。为清楚起见,请参考以下答案:https://stackoverflow.com/a/61215252/8659116