version
환경 변수 로 선언하는 것이 좋습니다. 따라서 프로젝트의 어느 곳에서나 사용할 수 있습니다. (특별히로드 파일의 경우 버전에 따라 캐시 할 e.g. yourCustomjsonFile.json?version=1.0.0
)
보안 문제를 방지하기 위해 (@ZetaPR가 언급 한 바와 같이) 우리가 사용할 수있는 이 (코멘트 '@sgwatgit에) 접근 방식을
한마디로 : 우리는 만들 yourProjectPath \ PreBuild.js을 파일. 이처럼 :
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`);
});
위의 코드 조각은 /src/environments/version.ts
이름이 지정된 상수를 포함 하는 새 파일 을 생성하고 파일 version
에서 추출 된 값으로 설정 package.json
합니다.
PreBuild.json
빌드시 컨텐츠를 실행하기 위해이 파일을 다음과 같이 Package.json
-> "scripts": { ... }"
섹션에 추가합니다 . 이 코드를 사용하여 프로젝트를 실행할 수 있습니다 npm start
:
{
"name": "YourProject",
"version": "1.0.0",
"license": "...",
"scripts": {
"ng": "...",
"start": "node PreBuild.js & ng serve",
},...
}
이제 버전을 가져 와서 원하는 곳 어디에서나 사용할 수 있습니다.
import { version } from '../../../../environments/version';
...
export class MyComponent{
...
public versionUseCase: string = version;
}