• same::

    ts 编译配置文件

    梗概:

    运行了tsc --init之后 在ts项目的根目录下, 会有一个tsconfig.json的文件

    一些重要配置项

    1. module

    "module": "CommonJS", 编译出来的js采用CommonJS模块化规范

    1.1. 说明:

    1. 其中值可以为ESnext

    2. include和exclude

    child::include和exclude配置项

    3. compilerOptions配置项

    child::

    compilerOptions配置项

    包含的重要配置项:

    1. 目标版本:

    • “module”: “目标版本” ^02h0wd
      • 指定 ts 编译生成的 js 所使用的[use::JS的模块化规范]
      • 但可能并不是严格转换:
        • module:"ESNext"不会将require()转换,而且ES6模块化 ES module的语句也基本不变
        • module: "commonjs"会将所有的模块化语句都转化为CommonJS
    • “target”: “目标版本”
      • 指定 ts 编译生成的 js 代码的语法版本, 如es6等…
    • outfile: “目标地址”
      • 将编译生成的所有js代码合为一个,输出到目标地址
      • 将编译生成的所有类型声明文件合为一个,输出到目标地址
      • 例如:outfile:”./index.js”,在根目录输出index.js和index.d.ts文件

    2. 严格模式

    生成类型声明文件

    • declaration: true 编译的时候生成类型声明文件 ^d217c2
      • 常常配合outfile选项使用,指定生成的位置
    • emitDeclarationOnly: true 只生成类型声明文件
    • 生成的类型声明文件同时会声明模块
      • 模块的名字来自^415966的文件名

    类型检查的配置

    • lib: 字符串数组 ,表示ts进行类型检查的时候允许哪些运行时的类型
          - 如果你的代码将在浏览器中运行,那么你可能需要包含 dom 库,它提供了浏览器 DOM API 的类型定义。
          - 如果你的代码将在 Node.js 环境中运行,那么你可能需要包含 node 库,它提供了 Node.js API 的类型定义。
          - 如果你的代码中使用了 Promise,那么你应该选择一个包含 Promise 类型定义的库,例如 es2015 或更高版本。

    配置npm包路径解析方式为COMMONJS

    混合commonjs与ESM

    • moduleResolution: "nodenext"
      • 需要ts 4.7版本以上!

    实例

    路径解析

    child::

    路径解析

    指向原始笔记的链接

    指向原始笔记的链接

    指向原始笔记的链接