Đó là một ý tưởng tốt để khai báo version
là 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.ts
chứa hằng số được đặt tên version
và đặt nó theo giá trị được trích xuất từ package.json
tệp.
Để chạy nội dung PreBuild.json
trê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;
}