C'est une bonne idée de déclarer version
comme variable d'environnement afin que vous puissiez l'utiliser partout dans votre projet. (spécialement en cas de chargement de fichiers à mettre en cache en fonction de la version e.g. yourCustomjsonFile.json?version=1.0.0
)
Afin d'éviter les problèmes de sécurité (comme @ZetaPR l'a mentionné), nous pouvons utiliser cette approche (sur le commentaire de @sgwatgit)
En bref: nous créons un yourProjectPath \ PreBuild.js fichier. Comme ça:
const path = require('path');
const colors = require('colors/safe');
const fs = require('fs');
const dada = require.resolve('./package.json');
const appVersion = require('./package.json').version;
console.log(colors.cyan('\nRunning pre-build tasks'));
const versionFilePath = path.join(__dirname + '/src/environments/version.ts');
const src = `export const version = '${appVersion}';
`;
console.log(colors.green(`Dada ${colors.yellow(dada)}`));
// ensure version module pulls value from package.json
fs.writeFile(versionFilePath, src, { flat: 'w' }, function (err) {
if (err) {
return console.log(colors.red(err));
}
console.log(colors.green(`Updating application version
${colors.yellow(appVersion)}`));
console.log(`${colors.green('Writing version module to
')}${colors.yellow(versionFilePath)}\n`);
});
L'extrait ci-dessus créera un nouveau fichier /src/environments/version.ts
qui contient une constante nommée version
et la définira par valeur extraite du package.json
fichier.
Afin d'exécuter le contenu de la PreBuild.json
construction, nous ajoutons ce fichier dans la section Package.json
-> "scripts": { ... }"
comme suit. Nous pouvons donc exécuter le projet en utilisant ce code npm start
::
{
"name": "YourProject",
"version": "1.0.0",
"license": "...",
"scripts": {
"ng": "...",
"start": "node PreBuild.js & ng serve",
},...
}
Maintenant, nous pouvons simplement importer la version et l'utiliser où nous voulons:
import { version } from '../../../../environments/version';
...
export class MyComponent{
...
public versionUseCase: string = version;
}