【问题标题】:tsconfig.json difference between include and rootDirtsconfig.json include 和 rootDir 的区别
【发布时间】:2022-08-05 14:32:34
【问题描述】:

从文档中可以看出,include 指定了要包含在程序中(即在编译过程中)的文件名或模式数组。同样,rootDir 是包含要包含在编译过程中的应用程序源代码的文件夹的路径。

  \"include\": [\"./src/\"],
  \"exclude\": [\"node_modules/*\", \"test/*\"],
  \"compilerOptions\": {
    \"module\": \"commonjs\",
    \"target\": \"es2015\",
    \"rootDir\": \"./src\",
    \"outDir\": \"./dist/\",
  }

那有什么区别呢?

    标签: typescript tsconfig


    【解决方案1】:

    include 顶级选项定义将包含的文件。它相对于.tsconfig.json,默认为**,表示项目中的所有文件。 include 之外的文件将不是被编译。

    compilerOptions.rootDir 选项将树的根定义为 outDir。默认情况下,它使用包含文件夹之间的公共路径。这意味着在具有两个文件src/services/user.tssrc/services/auth.ts 的项目中,rootDir 将默认为src/services/(即,所有输入文件的最长公共路径段)。输出目录如下所示:

    dist
    ├── auth.js
    └── user.js
    

    手动将 rootDir 设置为 src 将生成此输出目录:

    dist
    └── services
        ├── auth.js
        └── user.js
    

    最后,在include 选项中包含rootDir 之外的文件会引发错误:

    error TS6059: File '~/project/outside.ts' is not under 'rootDir' '~/project/src'. 'rootDir' is expected to contain all source files.
      The file is in the program because:
        Matched by include pattern '**/*' in '~/project/tsconfig.json'
    

    【讨论】:

      猜你喜欢
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 2016-07-06
      • 1970-01-01
      • 2018-05-01
      • 1970-01-01
      • 2010-09-15
      相关资源
      最近更新 更多