이 저장소에는 Deriv 애플리케이션의 다양한 플랫폼이 포함되어 있습니다.
이 문서에서 :
이 프로젝트를 실행하거나 기여하기 전에 환경에 다음 패키지를 설정해야 합니다.
contribution
용) 프로젝트 포크
자신의 Deriv 애플리케이션 버전에서 작업하려면 프로젝트를 자신의 저장소로 포크하세요.
SSH를 사용하여 복제
git clone [email protected]:deriv-com/deriv-app.git
내부 : NX 및 Lerna 통합
- nx-cloud accessToken 찾기 및 복사
- 프로젝트의 루트 디렉터리에서
nx-cloud.env.example
의 복사본을 만들고 이름을nx-cloud.env
로 지정하고을 제공된 토큰으로 바꿉니다.
프로젝트 디렉토리 입력
cd deriv-app
종속성을 설치합니다.
npm run bootstrap
패키지 빌드:
npm run build:all
패키지 이름 | 문서 | 버전 |
---|---|---|
Account | - | - |
Appstore | - | |
Bot-skeleton | - | |
Bot-web-ui | - | |
Cashier | - | |
Cfd | - | |
Components | - | |
Core | - | |
Indicators | - | |
P2P | ||
Publisher | - | |
Shared | - | |
Trader | - | |
Translations | - |
모든 패키지에는 명시된 작업을 수행하기 위한 다음 스크립트가 포함되어 있어야 합니다.
패키지 매개변수 | 명령 | 설명 |
---|---|---|
✅ | start | 전체 테스트 및 빌드 제품군을 실행하고 개발 서버를 시작합니다. |
✅ | serve | 빌드 스위트를 실행하고 개발 서버를 시작합니다. core 제공할 때 특정 페이지를 열려면 선택적 open 값을 인수로 사용합니다. (예: npm run serve core --open=bot ) |
✅ | build:one | 빌드 제품군을 실행하고 전달된 패키지 이름에 대한 결과를 dist 에 출력합니다. |
✅ | build:all | 모든 패키지에 대한 빌드 스위트를 실행하고 결과를 dist 에 출력합니다. |
✅ | test | eslint, stylelint 및 jest를 사용하여 테스트 스위트를 실행합니다. |
✅ | test:jest | jest 테스트 스위트만 실행합니다. |
✅ | test:qa | e2e 테스트 스위트를 실행합니다. |
✅ | test:performance | 성능 테스트 스위트를 실행합니다. |
참고: 설정 방법 및 사용자 정의 스크립트에 대해서는 작업하려는 각 패키지의 README를 따르십시오. 그러나 위 스크립트는 다음과 같은 방식으로 루트 디렉터리에서 실행할 수 있습니다.
각 패키지의 이름은 @deriv/
접두사로 지정되지만 위 스크립트의 경우 스크립트의 첫 번째 인수 앞에 이미 @deriv/
접두사가 있으므로 @deriv @deriv/
접두사를 추가할 필요가 없습니다. 그러나 lerna
CLI를 직접 사용하는 경우 @deriv/
접두어를 포함한 전체 패키지 이름을 사용해야 합니다.
먼저 packages
폴더로 이동하여 패키지 이름을 찾을 수 있습니다. 각 하위 폴더는 패키지이며 package.json
파일을 포함합니다. package.json
의 name
키 값은 패키지 이름입니다.
Core에서 작업하려면 npm run serve core
실행하면 됩니다.
하지만 다른 패키지(예: Trader, Bot, P2P)에 대한 작업을 수행하려면 다음을 수행하세요.
npm run serve {package name}
실행하세요. 예: npm run serve translations
, npm run serve bot
등.npm run serve core
실행하세요. 프로젝트에서 node_modules
폴더를 제거하려면 프로젝트 루트에서 npm run clean
실행하세요.
이것은 내부적으로 lerna clean && rm -rf $(git rev-parse --show-toplevel)/node_modules
실행합니다. Lerna 문서에서 다양한 lerna 명령(및 clean
명령)에 대한 자세한 내용을 읽을 수 있습니다.
참고 : 권한 거부 오류가 발생하는 경우 간단히 sudo chown -R $(whoami) .
프로젝트의 루트에서.
npm cache clean -f
✅ 다른 패키지를 실행하려면 core
필요합니다. 예를 들어 bot-web-ui를 실행하려면 먼저 코어를 인스턴스화해야 합니다.
npm run serve core
스크립트가 "패키지 매개변수"를 지원하는 경우 스크립트를 실행할 수 있도록 {package name}
을 제공할 수 있습니다. 현재는 하나의 패키지 이름만 스크립트에 지정할 수 있습니다. 여러 개를 실행하려면 문서에 따라 내부적으로 사용되는 lerna
명령을 사용하십시오.
✅ bot
패키지를 실행하려면 다음을 실행하세요.
npm run serve bot-web-ui
✅ 다른 스크립트를 사용하는 trader
(또는 다른 패키지)의 경우에도 마찬가지입니다.
npm run test:stylelint trader
릴리스에는 두 가지 유형이 있습니다.
git tag staging_v20191205 -m 'release staging'
# 태그는 RegExp 형식 /^staging.*/
따라야 합니다.git push origin staging_v20191205
git tag production_v20191205 -m 'release production'
git push origin production_v20191205
네 번째 릴리스 유형이 있습니다: npm 레지스트리 패키지 릴리스(현재 @deriv/p2p
). 이는 WIP이지만 현재 방법은 다음과 같습니다.
@deriv
npm 조직 네임스페이스에 대한 멤버십을 획득합니다.@deriv/p2p
)의 새(범프) 버전이 있는지 확인하세요.npm run publish:p2p
실행하세요. 이 명령은 범프된 모든 패키지를 게시합니다. 그러나 현재 이름에는 WIP 상태를 알리는 p2p
라는 단어가 포함되어 있으며 P2P는 이 저장소에 게시된 유일한 패키지입니다. [{Project Code}] {Developer}/{Clickup Card ID}/{Description}
형식을 사용하세요. (예: [COJ] evgeniy/COJ-247/Align next-button on mt5 modal
), 여기서 [COJ]는 클릭업 프로젝트 코드입니다.테스트 링크 배포 미리보기에는 두 가지 유형이 있습니다.
PR을 생성하면 Vercel은 PR 내부에 테스트 링크를 자동 생성합니다. 이를 사용하여 변경 사항에 대한 테스트 링크를 미리 볼 수 있습니다.
수동 배포를 선호하는 경우 gh-pages 기능을 사용하여 테스트 링크를 생성할 수 있습니다. 이를 수행하는 방법은 다음과 같습니다.
gh-pages
브랜치의 루트에 간단히 배포할 수 있습니다: npm run deploy
.npm run deploy:clean
사용하여 단일 명령으로 gh-pages
분기를 정리( br_
폴더 제거 및 루트 지우기)하고 루트에 배포할 수 있습니다.npm run deploy:folder br_test_folder
하여 루트 앱 배포 br_
기타 폴더 배포와 분리하기 위해 gh-pages
분기의 폴더에 배포할 수 있습니다. 패키지 중 하나에 npm 패키지를 어떻게 설치 합니까?
A. 설치하려는 패키지에 cd
넣고 평소대로 npm i package-name
실행하면 됩니다. 아니면 간단히 lerna exec --scope=local-package -- npm i npm-package-name
과 같은 lerna exec
실행하세요. 예: lerna exec --scope=@deriv/translations -- npm i i18next
. lerna
CLI를 직접 사용하려면 @deriv/
접두어를 포함한 전체 패키지 이름이 필요합니다.
패키지 중 하나에서 npm 패키지를 제거하려면 어떻게 해야 하나요?
A. 설치와 마찬가지로 npm
명령을 실행하면 npm uninstall
( npm un
으로 축약됨)이 됩니다. 예: lerna exec --scope=@deriv/translations -- npm un i18next
.
package-lock.json
기반으로 종속성을 추가하기 위해 npm ci
또는 이와 동등한 기능을 어떻게 실행합니까?
A. 두 가지 옵션이 있습니다.
lerna exec --scope=trader -- npm ci
와 같이 명령을 실행하려는 패키지로 --scope
인수와 함께 lerna exec
사용하십시오.packages/PACKAGE-NAME
에 cd
넣고 npm ci
실행합니다. 예를 들어 cd packages/trader && npm ci
내 빌드가 실패하고 Node Sass( node-sass
)와 관련된 것을 볼 수 있습니다. 어떻게 해야 합니까?
A. 이 문제는 node-sass
의 binding.node
가 현재 프로젝트의 노드 버전과 다른 버전으로 설정된 경우 발생합니다. 다음을 순서대로 시도해 보세요.
npx lerna exec -- npm rebuild node-sass
실행하고 패키지를 다시 빌드해 보세요.npm cache clean --force
시도하고 npm run clean
시도한 다음 npm run bootstrap
시도하십시오. package-lock.json
파일을 어떻게 다시 생성할 수 있나요?
bootstrap:dev
스크립트에 추가했습니다. 패키지를 업데이트하거나 추가하고 package-lock.json
파일을 다시 생성하려는 경우 npm run bootstrap:dev
명령을 실행해야 합니다.