angular - Hur man hämtar applikationsversion (eller importerar package.json-fil)? Google hjälper inte :(


I min Angular-applikation skulle jag vilja visa versionen från package.json-filen.

Jag vet att för att importera det behöver jag tillåta import av json och för detta behöver tsconfig.json-filen få några extra rader:

{
  "compilerOptions": {      
    "module": "commonjs",
    "resolveJsonModule": true,
    "esModuleInterop": true,
    "moduleResolution": "node"
  }
}

Jag gjorde detta, men efter det när jag importerar json-filen i min komponentklass:

import { myPackage } from '../../../package.json';

Jag får fortfarande ett fel:

Kan inte hitta modul '../../../package.json'. Överväg att använda '--resolveJsonModule' för att importera modul med '.json'-ändelse.ts(2732)

Och problemet är inte med sökvägen eftersom jag lade en annan enkel JSON-fil i samma mapp men får samma fel.

Jag har googlat och sett många exempel som talar om '--resolveJsonModule', men det verkar som att jag gör allt som behövs... men det fungerar fortfarande inte.

Jag startade också om VScode och Angular-tjänsten - det hjälpte inte.

Jag använder Angular 10.0.11 och TS 3.9.7

Vänligen ge råd! Tack!

Svar #1

För att få tillgång till informationen i package.json i Angular, behöver du göra 3 saker

  1. I din tsconfig.json behöver du aktivera resolveJsonModule-alternativet som finns i compilerOptions som
    compilerOptions": {
         ......
         "resolveJsonModule": true
         ......
    }
  1. Efter det kan du köra om npm start i din terminal.

  2. När du har kört om npm start kommer du att kunna komma åt alla package.json-variabler inuti komponenten som

import * as  packageJson from 'package.json';
......
export class AppComponent {
      ......
      version = packageJson.version;
      ......
}

Relaterade artiklar