【TypeScript】入門之tsconfig.json

概述

若是一個目錄下存在一個tsconfig.json文件,那麼意味着這個目錄是TypeScript的根目錄。node

tsconfig.json文件中指定了用來編譯這個項目的根文件和編譯選項。一個項目能夠經過如下方式之一來編譯:json

使用tsconfig.json

  • 不帶任何輸入文件的狀況下調用tsc,編譯器會從當前目錄開始去查找tsconfig.json文件,逐級向上搜索父目錄。
  • 不帶任何輸入文件的狀況下調用tsc,且使用命令行參數--project(或-p)指定一個包含tsconfig.json文件的目錄。

當命令行上指定了輸入文件時,tsconfig.json文件會被忽略

示例

tsconfig.json示例文件:bash

  • 使用「files」屬性

    {
        "compilerOptions": {
            "module": "commonjs",
            "noImplicitAny": true,
            "removeComments": true,
            "preserveConstEnums": true,
            "sourceMap": true
        },
        "files": [
            "core.ts",
            "sys.ts",
            "types.ts",
            "scanner.ts",
            "parser.ts",
            "utilities.ts",
            "binder.ts",
            "checker.ts",
            "emitter.ts",
            "program.ts",
            "commandLineParser.ts",
            "tsc.ts",
            "diagnosticInformationMap.generated.ts"
        ]
    }複製代碼
  • 使用「「include」和」exclude「屬性

    {
        "compilerOptions": {
            "module": "system",
            "noImplicitAny": true,
            "removeComments": true,
            "preserveConstEnums": true,
            "outFile": "../../built/local/tsc.js",
            "sourceMap": true
        },
        "include": [
            "src/**/*"
        ],
        "exclude": [
            "node_modules",
            "**/*.spec.ts"
        ]
    }複製代碼

細節

"compilerOptions"能夠被忽略,這時編譯器會使用默認值。ui

"files"指定了一個包含相對或絕對文件路徑的列表。"include"和"exclude"屬性指定一個文件glob匹配模式列表,支持的glob通配符有:spa

  • * 匹配0或者多個字符(不包括目錄分隔符)
  • ?匹配一個任意字符(不包括目錄分隔符)
  • **/遞歸匹配任意子目錄

若是一個glob模式裏的某部分只包含*或者.*,那麼僅有支持的文件擴展名類型被包含在內。命令行

若是"files"和"include"都沒有被指定,編譯器默認包含當前目錄和子目錄下全部的TypeScript文件(.ts,.d.ts,.tsx)code

相關文章
相關標籤/搜索