尝试对模块和目标有一些基本的了解。
我想知道典型的tsconfig.json
中模块和目标编译选项之间的区别{ "compilerOptions": { "module": "es6", "sourceMap": true, "target": "es6" } }
如果我提供以下选项会发生什么:
模块:commonjs,target:es6
模块:es6,target:commonjs
模块:commonjs,target:commonjs
答案 0 :(得分:1)
更详细的解释如下:Understanding "target" and "module" in tsconfig
另请参阅:Understanding "target" and "module" in tsconfig。
以下是文档on compiler options的引用:
<强> - 目标强>
指定ECMAScript目标版本:&#39; es3&#39; (默认),&#39; es5&#39;或&#39; es6&#39;。
<强> - 模块强>
指定模块代码生成:&#39;无&#39;,&#39; commonjs&#39;,&#39; amd&#39;,&#39; system&#39;,&#39; umd&# 39;,&#39; es6&#39;或&#39; es2015&#39;。
- 只有&#39; amd&#39;和&#39;系统&#39;可以与--outFile一起使用。
- &#39; ES6&#39;和&#39; es2015&#39;在定位ES5或更低时,可以使用值。
答案 1 :(得分:0)
有两件不同的东西。 --target
只是意味着您使用哪个版本的ECMAScriot进行编码。 --module
只是意味着你正在使用哪个模块系统,例如commonjs
用于Node或ES模块的所有支持它的模块系统。
答案 2 :(得分:0)
“目标”属性用于指定您的 TypeScript 代码最终将编译成的 JavaScript 版本。 “module”属性指定您编译的 (TS-->JS) 代码将使用的模块语法的类型。例如,如果将模块属性设置为“commonJS”,则编译后的代码将使用“require/module.exports”来导入/导出。但是,模块属性不会影响编译代码的其余部分。为清楚起见,请参考此答案:https://stackoverflow.com/a/61215252/8659116