tsconfig之moduleResolution详解
warning:
这篇文章距离上次修改已过450天,其中的内容可能已经有所变动。
moduleResolution 是 TypeScript 编译器选项之一,用于指定模块解析策略。
在 TypeScript 中,有两种模块解析策略:
Classic:TypeScript 默认的解析策略,它遵循 Node.js 的模块解析策略。例如,当你导入lodash时,它会尝试查找lodash.ts、lodash.js、lodash/index.ts和lodash/index.js。Node:与 Node.js 的模块解析相同,它会尝试查找package.json中的main字段来解析模块。
你可以在 tsconfig.json 文件中设置 moduleResolution 选项来指定使用哪种策略:
{
"compilerOptions": {
"moduleResolution": "node"
}
}这里是一个简单的示例,演示如何在 TypeScript 中使用不同的 moduleResolution 设置:
- 假设你有一个模块
util/math.utils.ts,你想在另一个文件中导入它:
// util/math.utils.ts
export const add = (a: number, b: number) => a + b;- 使用
Classic解析策略时,你可以这样导入:
// another-file.ts
import { add } from 'util/math.utils';- 使用
Node解析策略时,你需要确保package.json中有正确的入口点,然后可以这样导入:
// package.json
{
"main": "util/math.utils.js"
}
// another-file.ts
import { add } from 'util';在这个例子中,当你使用 "moduleResolution": "node" 时,TypeScript 编译器会查找 package.json 中指定的入口文件。当你使用 "moduleResolution": "classic" 时,它会尝试查找相对于导入语句的文件路径。
评论已关闭