Этот репозиторий содержит различные платформы приложения Deriv.
В этом документе :
Прежде чем запускать этот проект или участвовать в нем, вам необходимо настроить следующий пакет в вашей среде.
contribution
) Форкнуть проект
Чтобы работать над собственной версией приложения Deriv, создайте форк проекта в свой собственный репозиторий.
Клонировать с помощью SSH
git clone [email protected]:deriv-com/deriv-app.git
Внутреннее : интеграция NX и Lerna.
- Найдите и скопируйте токен доступа nx-cloud
- Создайте копию
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/
. Однако , если вы используете CLI lerna
напрямую, вам нужно будет использовать полное имя пакета, включая префикс @deriv/
.
Вы можете найти имена пакетов, сначала перейдя в папку packages
. Каждая подпапка представляет собой пакет и содержит файл package.json
. Значение ключа name
в package.json
— это имя пакета.
Если вы хотите работать над 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 (и команде clean
) в документации Lerna.
Примечание . В случае возникновения ошибки отказа в разрешении просто запустите 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
Существует 2 типа выпуска:
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
Существует 4-й тип выпуска: выпуск пакетов реестра npm (сейчас @deriv/p2p
). Это незавершенное производство, но текущий метод:
@deriv
npm.@deriv/p2p
).npm run publish:p2p
. Команда публикует все обновленные пакеты. Однако сейчас в названии присутствует слово p2p
обозначающее статус незавершенного производства и то, что P2P является единственным опубликованным пакетом в этом репозитории. [{Project Code}] {Developer}/{Clickup Card ID}/{Description}
для PR-заголовков. (например: [COJ] evgeniy/COJ-247/Align next-button on mt5 modal
), где [COJ] — это код проекта клика.Существует два типа предварительного просмотра развертывания тестовых ссылок:
После создания PR Vercel автоматически создаст тестовую ссылку внутри PR. вы можете использовать это для предварительного просмотра тестовой ссылки на внесенные вами изменения.
Если предпочтительнее использовать развертывание вручную, вы можете использовать функцию gh-pages для создания тестовой ссылки. вот способы сделать это:
gh-pages
с помощью: npm run deploy
.br_
и очистить корень) свою ветку gh-pages
и развернуть ее в корне одной командой, выполнив npm run deploy:clean
gh-pages
, чтобы отделить развертывание корневого приложения и развертывание других папок с помощью: npm run deploy:folder br_test_folder
(имя папки должно иметь префикс br_
)) Как установить пакет npm в один из наших пакетов?
О. Вы можете просто cd
к пакету, который хотите установить, а затем запустить npm i package-name
как обычно. Или просто запустите lerna exec
например lerna exec --scope=local-package -- npm i npm-package-name
, например: lerna exec --scope=@deriv/translations -- npm i i18next
. Обратите внимание, что для прямого использования CLI lerna
вам необходимо полное имя пакета, включая префикс @deriv/
.
Как удалить пакет npm из одного из наших пакетов?
О. Точно так же, как при установке, за исключением того, что команда npm
, которую вы запустите, будет называться npm uninstall
(сокращенно до npm un
). например: lerna exec --scope=@deriv/translations -- npm un i18next
.
Как запустить npm ci
или его аналог, чтобы добавить зависимости на основе package-lock.json
?
А. У вас есть два варианта:
lerna exec
с аргументом --scope
в качестве пакета, в котором вы хотите запустить команду, например lerna exec --scope=trader -- npm ci
.cd
в packages/PACKAGE-NAME
и запустите npm ci
, например cd packages/trader && npm ci
Мои сборки терпят неудачу, и я вижу, что это связано с Node Sass ( node-sass
), что мне делать?
О. Эта проблема возникает, когда в вашем 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