javascript - Opprett stivebanenavn for fil(er) utenfor prosjektet


Jeg jobber med et prosjekt som er delt opp mellom flere Angular-prosjekter. Jeg har da noen tjenester som brukes i hvert prosjekt. Finnes det en måte for meg å laste disse inn i prosjektet mitt? Jeg får feil når jeg prøver å gjøre det.

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

Jeg har dette i roten av Angular-prosjektenes tsconfig.json-fil (prosjekt-1, prosjekt-2):

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

når jeg kjører npm start i project-1, får jeg følgende feil(er):

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...       

I min 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"
  },
}

Svar #1

Jeg har funnet ut en måte å gjøre dette på. I utilities-mappen gjør du det til en lenke med npm link. Deretter, i project-1-mappen, linker du til prosjektet med npm link utilities.

Jeg måtte deretter legge til noen stier og inkluderer i tsconfig.json for referanser:

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

Relaterte artikler