teespace-talk-app v0.1.1
본 저장소는 TeeSpace Talk App에 대한 코드를 관리합니다.
앱 모듈 개발 관련하여 주의 사항
본 저장소는 독립적으로 구동될 수 있으며, TeeSpace 뿐만 아니라 다른 프로젝트에서 구동할 수 있어야 합니다. TeeSpace 와 관련되어 있는 모듈은 teespace-core
에서 제공하는 store와 유틸리티를 사용해주시면 됩니다. 별도의 axios나 웹소켓 관련 라이브러리를 사용하지 않고 teespace-core
에서 제공하는 API
와 WebSocket
모듈을 사용하시면 됩니다.
teespace-core 최신 버전으로 테스트 필요 시 teespace-core 저장소의 모듈 연동 방법
항목을 참고 해주세요.
개발 시 yarn lib:start
명령을 통해서 정상적으로 모듈이 컴파일 되는지 주기적으로 확인이 필요합니다.
중요
src/external.js
파일에서 외부로 노출할 모듈 설정이 가능합니다. UI 컴포넌트와 Store 부분을 노출하여 외부 프로젝트에서 가져다가 사용할 수 있도록 해주세요.- 토크 내부에서 사용하는 정적 파일들을 최상단 프로젝트의 정적 폴더에 링크를 걸어야하며 link 라이브러리를 제공하고 있습니다.
(현재 기본값은/res/talk/~
로.env
파일의PUBLIC_PATH
에 정의 되어있습니다.)
// craco.config.js, build.config.js, etc.
const TalkLinkPlugin = require('teespace-talk-app/link');
// TalkLinkPlugin(externalPublicPath = 'public')
TalkLinkPlugin();
module.exports = {
// ...build setup
}
초기 설정 (Visual Studio Code)
Visual Studio Code를 설치합니다.
VSCode 설치가 완료되었다면, 다음과 같은 Extension 을 설치 합니다.
- prettier - Code formatter
- ESLint
- auto import
NodeJS LTS 버전과 yarn 패키지를 설치합니다.
설치가 완료되면, 다음과 같이 의존 라이브러리를 설치합니다.
$ npm install -g yarn
$ yarn install --frozen-lockfile
Command
yarn lib:start
본 프로젝트에 대한 모듈을 빌드합니다.
소스코드를 추적하여 변경된 이력이 발생하면 새로운 빌드파일을 만듭니다.
yarn lib:build:dev
브라우저 개발자 모드에서 디버깅을 할 수 있도록 콘솔로그가 남아있으며 소스코드의 난독화 및 압축을 하지않습니다.
yarn lib:build:staging
실환경 배포 모듈을 빌드합니다.
다른 앱들의 테스팅을 방해하지 않기 위해 콘솔로그가 제거되며,
소스코드의 난독화 및 압축을 하지 않습니다.
yarn build
운영환경 배포 모듈을 빌드합니다.
메모리 릭을 방지하기 위해 콘솔로그가 제거되며,
소스코드의 크기를 줄이기 위해 난독화 및 압축이 이루어집니다.
yarn compressImages.js
images 디렉토리에 있는 이미지를 압축해서 특정 폴더로 주입합니다.
기여 방법
git commit 메세지 컨벤션
git commit 메세지 컨벤션은 본 문서를 기반으로 작성되었습니다.
커밋 메세지는 타입(모듈): 설명
형태로 작성이 됩니다. 커밋할 때 자동으로 형식을 검사합니다. 유효하지 않은 형태로 커밋 메세지 작성 시 정상적으로 커밋이 되지 않습니다. 각 타입에 대한 설명은 다음과 같습니다.
타입 | 설명 |
---|---|
feat | 기능 추가, 라이브러리 추가, API 변경 시 사용 |
refactor | 코드 구조 변경 시 사용 |
fix | 버그 수정 시 사용 |
docs | 문서 수정 시 사용 |
test | 테스트 코드 작성 시 사용 |
chore | 자잘한 수정이 있을 시 사용 (예. 설정 파일 변경 등) |
코드 수정하여 다른 코드에 영향을 줄 수 있는 것은 BREAKING CHANGE
를 사용하여 작성합니다. 이에 대한 설명은 다음과 같습니다.
feat(common): TeeSpace를 위한 API 클래스 구현
BREAKING CHANGE: axios를 직접 사용하지 않고, API 클래스를 사용하여 구현 필요
Merge Request
작성 예정
Code Review
작성 예정
주의
- 깨진 코드 (빌드 되지 않거나 동작하지 않는 코드)를 develop 브랜치에 머지 되면 안됩니다.
- pull 받으실 때는 꼭 rebase pull 을 사용하세요. (git pull --rebase origin)
develop
브랜치에서 기능 브랜치를 생성하는 경우, 주기적으로develop
브랜치를 rebase 하여 충돌을 최소화 해주세요. (git rebase develop)- 가급적 merge commit은 자제하여 깨끗한 커밋 로그를 남길 수 있도록 합니다.
3 years ago