package.json
을 환경 값으로 업데이트하는 preinstall
후크를 작성할 수 있습니다. 운 좋게도 라이프 사이클 후크의 순서는 yarn
을 사용하여 처방대로 작동합니다.
{
"name": "njs",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"preinstall": "node preinstall.js"
},
"dependencies": {
"@companyName/repository": "git+https://${$BITBUCKET_USER}:${BITBUCKET_APP_PASSWORD}@bitbucket.org/companyName/repository.git"
},
"author": "",
"license": "ISC"
}
preinstall.js 예 :
const package = require('./package.json');
const fs = require('fs');
const {BITBUCKET_USER = 'test', BITBUCKET_APP_PASSWORD='test'} = process.env;
package.dependencies["@companyName/repository"] = package.dependencies["@companyName/repository"]
.replace("${$BITBUCKET_USER}", BITBUCKET_USER)
.replace("${BITBUCKET_APP_PASSWORD}", BITBUCKET_APP_PASSWORD);
fs.writeFileSync('package.json', JSON.stringify(package, null, 4));
보너스 : 당신이 preinstall.js
에서 환경 변수를 대체하기 위해 선택하는 방법
이 당신의 좋은 판단에 남아 있습니다. 예, ES6 템플릿 태그를 완전히 사용할 수 있습니다.
'package.json'과 사용자의'Procfile' 파일을 게시하면 해결 방법이 필요합니다. –