typescript - tsconfig 中 rootDir 和 baseUrl 的区别
问题描述
tyescript中的rootDir和baseUrl有什么区别?
根据 ts 文档
基本网址
Base directory to resolve non-relative module names. See Module Resolution documentation for more details.
和根目录
Specifies the root directory of input files. Only use to control the output directory structure with --outDir.
在我的 tsconfig 中,我添加了“baseUrl”:“app/javascript/src”,
并没有添加任何东西
rootDir
那是对的吗?(这可行,但我不确定这是否正确)
更新:rootDir 给了我错误,因为我使用的是绝对路径
这是我的 tsconfig。(baseUrl 没有)
{
"compilerOptions": {
"declaration": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [
"es6",
"dom"
],
"module": "es6",
"moduleResolution": "node",
"sourceMap": true,
"jsx": "react",
"target": "es5",
"allowSyntheticDefaultImports": true,
"baseUrl": "app/javascript/src",
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"isolatedModules": true,
"skipLibCheck": true,
"allowJs": true,
"strict": true,
"outDir": "app/javascript/.dist",
},
"exclude": [
"node_modules",
"**/*.js",
"**/.jsx"
],
"include": [
"**/*.ts",
"**/*.tsx"
],
"compileOnSave": false
}
在 webpack 中,我正在解析这样的路径
resolved_paths: ['app/javascript/src', 'app/javascript']
解决方案
我添加了“baseUrl”:“app/javascript/src”,对吗?
否。如果您正在为您的项目指定包含的文件(如 所示src
),您应该使用rootDir
(如前所述Specifies the root directory of input files.
)。
您没有收到错误的原因
baseUrl
仅对非相对导入生效。您的代码大多具有相对导入,例如import something from './something'
,因此它对您没有任何不利影响。