표준 버전으로 Expo 릴리스 간소화
표준 버전은 단일 명령
yarn standard-version
으로 릴리스 프로세스를 단순화하는 도구입니다. 사용자 정의가 가능하며 conventional commits에서 생성된 변경 로그와 같이 필요한 모든 것이 있어야 합니다. 아직 도구를 모르신다면 check out the documentation first .이 가이드에서는 Standard version for Expo을 구성하는 방법을 보여드리겠습니다. 예제 프로젝트를 설정하고 자동화된
expo.version
, expo.android.versionCode
및 expo.ios.buildNumber
에 대해 구성합니다.🚀가자
먼저 빈 템플릿을 사용하여 빈 Expo 프로젝트를 만듭니다.
$ expo init --template blank
다음으로 프로젝트의 시작 버전을 정의해야 합니다. 표준 버전은
package.json
's version
속성을 사용하여 현재 버전을 결정합니다. 이 값은 다음 릴리스를 계산하는 데 사용됩니다. 이 속성을 0.0.0
로 설정해 보겠습니다.{
"version": "0.0.0",
"main": "node_modules/expo/AppEntry.js",
...
}
이제 Expo 확장이 있는 표준 버전을 개발 종속성에 추가합니다.
$ yarn add --dev standard-version@next standard-version-expo
Currently, [email protected] is the only version that supports updaters from packages. That's why we need
@next
here.
시험 실행 모드에서 표준 버전을 실행하여 프로젝트를 테스트할 수 있습니다. 이 모드는 아무것도 하지 않고 수행할 작업만 알려줍니다.
$ yarn standard-version --dry-run
If you get the
Invalid Version: undefined
error, it means thepackage.json
doesn't have a starting version.
⚙️ 표준 버전 구성
이제 기본 사항을 설정했으므로 Expo용 Standard 버전을 구성해야 합니다. 다음을 사용하여
.versionrc.js
라는 파일을 만듭니다.module.exports = {
bumpFiles: [
{
filename: 'package.json',
},
{
filename: 'app.json',
updater: require.resolve('standard-version-expo'),
},
],
};
This tells Standard version that we want to update
app.json
, using the default updater from the Expo extension. The updater bumpsexpo.version
with the new version, so you don't have to! 😬Note: We also want to update our
package.json
, with the default updater, to keep a single source of truth for our versions. (See PR #3 for more details)
--dry-run
를 사용하여 구성을 다시 테스트하십시오. 다음 출력이 표시되면 훌륭하게 작업한 것입니다. 🦄$ yarn standard-version --dry-run
✔ bumping version in app.json from 1.0.0 to 0.0.1
✔ created CHANGELOG.md
✔ outputting changes to CHANGELOG.md
...
✔ committing app.json and CHANGELOG.md
✔ tagging release v0.0.1
이제 이러한 변경 사항을 커밋하고 새 마이너 버전을 만듭니다.
$ git add .
$ git commit -m 'feat: add standard version for releases'
$ yarn standard-version --release-as minor
도구를 실행한 후 새 파일
CHANGELOG.md
과 업데이트된 파일app.json
이 있어야 합니다! 여전히 로컬 변경 사항을 원격으로 푸시해야 하지만 문제가 발생한 경우 변경 사항을 되돌릴 수 있는 옵션도 제공됩니다. 🧑🔧📱 빌드 버전 구성
앱을 스토어에 출시할 계획이라면 Standard 버전을 조금 더 구성해야 합니다. 또한 Android version codes 및 iOS build numbers 을 업데이트해야 합니다. iOS 및 Android 구성으로 매니페스트를 업데이트하는 것으로 시작하겠습니다.
{
"expo": {
...
"ios": {
"supportsTablet": true,
"bundleIdentifier": "com.bycedric.awesomeapp",
"buildNumber": "0.0.0"
},
"android": {
"package": "com.bycedric.awesomeapp",
"versionCode": 0
}
}
}
좋습니다. 이제 이러한 새 속성에 대해 표준 버전에 알려야 합니다.
expo.version
와 마찬가지로 모든 릴리스에서 값이 변경되어야 합니다. 이렇게 하려면 .versionrc.js
를 열고 새 버전 범퍼를 추가합니다.module.exports = {
bumpFiles: [
{
filename: 'package.json',
},
{
filename: 'app.json',
updater: require.resolve('standard-version-expo'),
},
{
filename: 'app.json',
updater: require.resolve('standard-version-expo/android'),
},
{
filename: 'app.json',
updater: require.resolve('standard-version-expo/ios'),
},
],
};
There are multiple types of version updaters, each with their own "tactic". You can find them all here. For simplicity, let's stick to the recommended bumpers for now.
그게 다야! 이러한 변경 사항을 커밋하고 표준 버전을 실행하면 빌드 버전 번호도 업데이트됩니다. 🌈
$ git add .
$ git commit -m 'feat: add standard version for releases'
$ yarn standard-version --release-as patch
🤝 읽어주셔서 감사합니다!
이것이 누구에게나 유용할 수 있기를 바랍니다. 이 라이브러리를 사용하는 경우 언제든지 문의하십시오. 도구 사용 경험에 대해 듣고 싶습니다. 또한 개선할 수 있는 좋은 아이디어가 있거나 문제가 있는 경우 언제든지 문의해 주세요. 🙆♂️
📚 추가 굿즈
Edit: I made a mistake of not adding
package.json
to our.versionrc.js
. Thanks to awinograd for spotting and fixing it!Cover photo by Robert Metz
Reference
이 문제에 관하여(표준 버전으로 Expo 릴리스 간소화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bycedric/simplify-expo-releases-with-standard-version-2f4o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)