0.1.1 • Published 3 years ago

teespace-talk-app v0.1.1

Weekly downloads
-
License
-
Repository
-
Last release
3 years ago

본 저장소는 TeeSpace Talk App에 대한 코드를 관리합니다.

앱 모듈 개발 관련하여 주의 사항

본 저장소는 독립적으로 구동될 수 있으며, TeeSpace 뿐만 아니라 다른 프로젝트에서 구동할 수 있어야 합니다. TeeSpace 와 관련되어 있는 모듈은 teespace-core 에서 제공하는 store와 유틸리티를 사용해주시면 됩니다. 별도의 axios나 웹소켓 관련 라이브러리를 사용하지 않고 teespace-core에서 제공하는 APIWebSocket 모듈을 사용하시면 됩니다.

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은 자제하여 깨끗한 커밋 로그를 남길 수 있도록 합니다.