versjonering - Hvordan hente versjonen fra package.json i Typescript?
Jeg har funnet denne spørsmål-og-svar.
Jeg har prøvd å få tak i versjonen fra package.json ved å bruke:
import { version } from './package.json';
men det resulterer i:
package.json' has unsupported extension. The only supported extensions are '.ts',
'.tsx', '.d.ts'.
Svar #1
Måten jeg liker å gjøre dette på uten å kreve webpack eller andre avhengigheter er å legge til et prebuild-skript i package.json som skriver versjonen til en TypeScript-kildefil som kan importeres andre steder.
"scripts": {
"prebuild": "node -p \"'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts",
"build": "tsc",
}
Dette kjører node.js med -p/--print-flagget som evaluerer følgende kode:
'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'og videresender utdataene til src/version.ts
Dette resulterer i at src/version.ts inneholder:
export const LIB_VERSION = "1.0.0";Du kan deretter enkelt importere og bruke dette fra andre filer:
import { LIB_VERSION } from './version';Du vil sannsynligvis utelate src/version.ts fra kildekontroll slik at endringene ikke rotet til endringsloggen din!
Svar #2
Hvis du er i et CommonJS-miljø, hvorfor ikke bare bruke
const pj = require('./package.json')
console.log(pj.version)
REDIGER
Siden du ser ut til å bruke webpack, bare legg til den passende loaderen
module: {
loaders: [
...
{test: /\.json$/, loader: 'json-loader'},
....
som du åpenbart må installere ved å bruke npm install
