versionering - Hur får man versionen från package.json i Typescript?
Jag har hittat denna frågestund.
Jag har försökt få versionen från package.json med:
import { version } from './package.json';
men det resulterar i:
package.json' has unsupported extension. The only supported extensions are '.ts',
'.tsx', '.d.ts'.
Svar #1
Sättet jag gillar att göra detta utan att kräva webpack eller några andra beroenden är att lägga till ett prebuild-skript i package.json som skriver versionen till en TypeScript-källfil som kan importeras någon annanstans.
"scripts": {
"prebuild": "node -p \"'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts",
"build": "tsc",
}
Detta kör node.js med flaggan -p/--print som utvärderar följande kod:
'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'och skickar utdata till src/version.ts
Detta resulterar i att src/version.ts innehåller:
export const LIB_VERSION = "1.0.0";Du kan sedan helt enkelt importera och använda detta från andra filer:
import { LIB_VERSION } from './version';Du vill förmodligen utesluta src/version.ts från källkontroll så att dess ändringar inte skräpar ner din ändringshistorik!
Svar #2
Om du är i en CommonJS-miljö, varför inte helt enkelt använda
const pj = require('./package.json')
console.log(pj.version)
REDIGERA
Eftersom du verkar använda webpack, lägg bara till lämplig loader
module: {
loaders: [
...
{test: /\.json$/, loader: 'json-loader'},
....
som du uppenbarligen behöver installera med npm install
