乐趣区

关于前端:Angular-tsconfigjson-文件里的-paths-用途

Angular 我的项目目录中的 TSConfig 文件表明该目录是 TypeScript 或 JavaScript 我的项目的根目录。TSConfig 文件能够是 tsconfig.json 或 jsconfig.json,两者都有雷同的配置变量集。

咱们间接来到 paths 字段:

这是一个对象,定义了一系列将导入 (import) 从新映射到绝对于 baseUrl 的查找地位的条目。

所谓 baseUrl,容许开发人员设置根本目录以解析非相对模块名称。

咱们能够定义一个根文件夹,而后能够在其中进行相对文件解析。

思考上面的例子:

在此我的项目中应用 “baseUrl”: “./”,TypeScript 将查找从与 tsconfig.json 雷同的文件夹开始的文件。

例如上面的用法:

import {helloWorld} from "hello/world";
console.log(helloWorld);

Spartacus 我的项目的 baseUrl 用法:

paths 内的值,容许开发人员申明 TypeScript 应该如何解析应用程序的 require/imports 中的导入。

{
  "compilerOptions": {
    "baseUrl": ".", // this must be specified if "paths" is specified.
    "paths": {"jquery": ["node_modules/jquery/dist/jquery"] // this mapping is relative to "baseUrl"
    }
  }
}

下面代码的作用:

这将使开发人员可能编写 import “jquery”,并在本地取得所有正确的输出。

paths 字段反对 * 通配符:

{
  "compilerOptions": {
    "baseUrl": "src",
    "paths": {"app/*": ["app/*"],
        "config/*": ["app/_config/*"],
        "environment/*": ["environments/*"],
        "shared/*": ["app/_shared/*"],
        "helpers/*": ["helpers/*"],
        "tests/*": ["tests/*"]
    },
}

在这种状况下,开发人员能够通知 TypeScript 文件解析器反对许多自定义前缀来查找代码。此模式可用于防止代码库中较长的相对路径。

rootDir

所有非申明输出文件的最长公共门路。如果设置了复合,则默认为蕴含 tsconfig.json 文件的目录。

Spartacus rootDir 的值:.

当 TypeScript 编译文件时,它在输入目录中放弃与输出目录中雷同的目录构造。

例如,假如有上面这些输出文件:

rootDir 的推断值是所有非申明输出文件的最长公共门路,在本例中为 core/。

退出移动版