为项目外的文件创建路径别名

时间:2020-12-22 18:28:26

标签: javascript angular typescript

我正在处理一个拆分为多个 angular 项目的项目。然后我有一些在每个项目中使用的服务。有没有办法在我的项目中加载这些?我尝试这样做时遇到错误。

/root
  /project-1
    /angular.json
    /tsconfig.json
  /project-2
    /angular.json
    /tsconfig.json
  /utilities
    /src
      /auth.service.ts
      /s3.service.ts
      /lambda.service.ts

我在 angular 项目 tsconfig.json 文件(project-1,project-2)的根目录中有这个:

{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@utilities/*": [
        "../utilities/src/*"
      ]
    }
  }
}

当我在 npm start 中运行 project-1 时,出现以下错误:

Error: ../utilities/node_modules/buffer-equal-constant-time/index.js
Module not found: Error: Can't resolve 'buffer' in 'C:\projects\utilities\node_modules\buffer-equal-constant-time'

// Same error repeated for different modules...       

在我的utilities/package.json

{
  "dependencies": {
    "@angular/core": "^11.0.5",
    "@aws-sdk/client-cognito-identity": "^3.0.0",
    "@aws-sdk/client-lambda": "^3.0.0",
    "@aws-sdk/credential-provider-cognito-identity": "^3.0.0",
    "jsonwebtoken": "^8.5.1",
    "rxjs": "^6.6.3",
    "tslib": "^2.0.0"
  },
}

1 个答案:

答案 0 :(得分:0)

我想出了一种方法来做到这一点。在 utilities 文件夹中设置一个链接 npm link。然后在 project-1 文件夹中链接到项目 npm link utilities

然后我不得不添加一些路径并包含在 tsconfig.json 中以供参考:

{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@utilities/*": [
        "node_modules/utilities/src/*"
      ]
    }
  },
  "include": [
    "node_modules/utilities/src/**/*.ts"
  ]
}