Angular cli项目中的绝对路径

时间:2016-12-23 19:38:26

标签: typescript angular-cli

如何在角度cli生成的项目中使用绝对路径?

所以我有这条道路:src -> app -> shared 我想写import {} from 'shared/ffdsdf/my.module.ts' 而不是'../shared/ffdsdf/my.module.ts'

3 个答案:

答案 0 :(得分:5)

有一种TypeScript功能允许这样做。

您可以修改src/tsconfig.json文件以启用此功能,在compilerOptions下添加以下内容:

{
  "compilerOptions": {
    // ...
    "paths": {
      "*": [
        "./*",
        "app/*",
        "../node_modules/*"
      ]
    }
}

您可以根据需要更改模式键和值。您可以添加或删除文件夹,也可以更改订单等。

您也可以选择一个前缀而不仅仅是*(特别是如果它出现问题),您可以使用~/*之类的内容,然后您的导入将全部为from '~/shared/sample'等。

答案 1 :(得分:1)

更好的示例:

tsconfig.json

X = seq(from=200, to=700, by=50)
mymatrix <- matrix(nrow = 11, ncol = 28)
for (i in seq_along(X)) {
  for (j in seq_along(NP[,2:29])){
    mymatrix[i,j] <- which.min(abs(NP[,2:29][[j]]) - i)
  }
}

使用:

{
  "compilerOptions": {
    "baseUrl": "src",
    "paths": {
      "@app/*": [
        "app/*"
      ],
      "@app/core/*": [
        "app/core/*"
      ],
      "@app/shared/*": [
        "app/shared/*"
      ],
      "@env/*": [
        "environments/*"
      ]
    }
  }
}

而不是:

import { someService } from "@app/core/some.service";

答案 2 :(得分:0)

在Angular9中,请遵循以下步骤。

  1. baseUrl中创建tsconfig.json和路径

    {
 "baseUrl": "./src",
    "paths": {
      "@angular/*": [
        "../node_modules/@angular/*"
      ],
      "@app/*": ["app/*"],
      "@views/*": ["app/views/*"],
      "@containers/*": ["app/containers/*"]
    }
}

注意:在这里您可以看到我还向@ tsconfig.json添加了@angular路径分辨率。此步骤将确保VSCode显示正确的语法突出显示。

  1. baseUrl中删除pathtsconfig.app.json

注意:如果不执行此步骤,则在编译角度项目时会出现模块未找到错误。 (即使没有此选项,语法高亮也可以)。