Đó là một ý tưởng tốt để khai báo versionlà biến môi trường Vì vậy bạn có thể sử dụng nó ở mọi nơi trong dự án của bạn. (đặc biệt trong trường hợp các tập tin tải để được lưu trữ dựa trên phiên bản e.g. yourCustomjsonFile.json?version=1.0.0)
Để ngăn chặn vấn đề an ninh (như @ZetaPR đề cập) chúng ta có thể sử dụng này cách tiếp cận (trên @sgwatgit 's bình luận)
Nói tóm lại: chúng ta tạo ra một yourProjectPath \ PreBuild.js tập tin. Như thế này:
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`);
});
Đoạn mã trên sẽ tạo một tệp mới /src/environments/version.tschứa hằng số được đặt tên versionvà đặt nó theo giá trị được trích xuất từ package.jsontệp.
Để chạy nội dung PreBuild.jsontrên bản dựng, Chúng tôi thêm tệp này vào Package.json-> "scripts": { ... }"phần như sau. Vì vậy, chúng tôi có thể chạy dự án bằng mã này npm start::
{
"name": "YourProject",
"version": "1.0.0",
"license": "...",
"scripts": {
"ng": "...",
"start": "node PreBuild.js & ng serve",
},...
}
Bây giờ chúng tôi chỉ có thể nhập phiên bản và sử dụng nó bất cứ nơi nào chúng tôi muốn:
import { version } from '../../../../environments/version';
...
export class MyComponent{
...
public versionUseCase: string = version;
}