0%

Angular import path 最佳实践

1. 前言

当我们的Angular项目越来越大之后,我们会发现我们的每一个模块都散落在很深层次的路径当中,当我们需要导入某个模块或者组件时,我们会发现我们import的TypeScript路径可读性非常的差。当然你可以说,我们强大的IDE不就帮我把这个解决了吗,其实我们完全可以写得更优雅一些,import的path完全不需要那么长,那么怎么解决这个问题呢?答案就是:TypeScript Path Mapping

1
// 这里举例说明
2
import { something } from '../../../../../shared/shared.service';

2. How do you do it?

找到你Angular项目目录下的tsconfig.json文件,然后编辑paths配置,使用你自定义的有意义的路径名映射你要找到全路径。

1
{
2
  "compileOnSave": false,
3
  "compilerOptions": {
4
    "baseUrl": "./",
5
    "typeRoots": [
6
      "node_modules/@types"
7
    ],
8
    "lib": [
9
      "es2018",
10
      "dom"
11
    ],
12
    "paths": {
13
      "@stubs/*": [
14
        "./src/app/stubs/*"
15
      ],
16
      "@state/*": [
17
        "./src/app/state/*"
18
      ],
19
      "@shared/*": [
20
        "./src/app/shared/*"
21
      ]
22
    }
23
  },
24
  "angularCompilerOptions": {
25
    "fullTemplateTypeCheck": true,
26
    "strictInjectionParameters": true
27
  }
28
}

配置完成之后,接下来就可以优雅的更改我们之前的代码啦~

1
// 配置好tsconfig.json中的paths之后的版本
2
import { something } from '@shared/shared.service';