请解释 TypeScript 中的 --outDir 和 --rootDir 编译选项的作用

推荐答案

--outDir--rootDir 是 TypeScript 编译器选项中的两个重要配置项,用于控制编译输出的目录结构和源文件的根目录。

  • --outDir:指定编译后的 JavaScript 文件输出的目录。TypeScript 编译器会将所有生成的 .js 文件和 .d.ts 文件(如果有)放入该目录中,同时保持与源文件相同的目录结构。

  • --rootDir:指定 TypeScript 源文件的根目录。编译器会根据 rootDir 来确定源文件的相对路径,并在 outDir 中保持相同的目录结构。如果未指定 rootDir,编译器会基于所有输入文件的共同路径自动推断根目录。

本题详细解读

--outDir 的作用

--outDir 选项用于指定编译后的 JavaScript 文件输出的目录。假设你的项目结构如下:

如果你在 tsconfig.json 中配置了 "outDir": "dist",那么编译后的文件将会输出到 dist 目录中,保持与源文件相同的目录结构:

-- -------------------- ---- -------
--------
--- -----
-   --- --------
-   --- ------
-       --- ---------
--- ----
-   --- --------
-   --- ------
-       --- ---------
--- -------------

--rootDir 的作用

--rootDir 选项用于指定 TypeScript 源文件的根目录。编译器会根据 rootDir 来确定源文件的相对路径,并在 outDir 中保持相同的目录结构。假设你的项目结构如下:

如果你在 tsconfig.json 中配置了 "rootDir": "src",那么编译器会将 src 目录作为根目录,并在 outDir 中保持 src 目录结构。编译后的文件将会输出到 dist 目录中:

-- -------------------- ---- -------
--------
--- -----
-   --- --------
-   --- ------
-       --- ---------
--- ----
-   --- --------
-   --- ------
-       --- ---------
--- ------
-   --- -------
--- -------------

如果未指定 rootDir,编译器会基于所有输入文件的共同路径自动推断根目录。例如,如果所有输入文件都在 src 目录下,那么 src 将被推断为根目录。

注意事项

  • 如果 rootDir 指定的目录不包含所有输入文件,编译器会报错。
  • rootDiroutDir 通常一起使用,以确保编译后的文件结构正确。
纠错
反馈