编译器配置项-compilerOptions
模块相关(三)
模块解决方案 - moduleResolution
默认值:如果Classic if module选项为 AMD、UMD、System或者 ES6/ES2015,默认值为classic;如果module选项为 node16或者nodenext,默认值为node16或者nodenext;其他情况,默认值为node。
可以指定的模块解决方案的值为:
-
'node16'或者'nodenext':适用于现代版本的Node.js。Node.js从v12开始,之后的版本模块导入支持两种不同的算法,即ECMAScript imports和 CommonJSrequire。当moduleResolution选项值和module选项值结合使用时,会根据代码中实际使用的import或require选择正确的算法进行解析模块导入。 -
'node10'(之前的值为'node'):适用于Node.js的v10之前的版本,仅支持CommonJS的require算法( 在现代代码开发中,你可能不需要设置为node10)。 -
'bundler':适用于使用打包器。就像node16和nodenext,支持package.json中的"imports"和"exports",不像Node.js解决模式,bundler在导入相对路径的文件时不需要文件扩展名。 -
'classic'适用于TypeScript 1.6之前的版本,现在不应该使用了。
有一些参考页解释了TypeScript 模块解析背后的理论 以及每个选项的详细信息。
