Este repositório contém as diversas plataformas do aplicativo Deriv.
Neste documento :
Antes de executar ou contribuir com este projeto, você precisa configurar o seguinte pacote em seu ambiente.
contribution
) Bifurque o projeto
Para trabalhar em sua própria versão do aplicativo Deriv, bifurque o projeto em seu próprio repositório.
Clonar usando SSH
git clone [email protected]:deriv-com/deriv-app.git
Interno : integração NX e Lerna
- Encontre e copie o accessToken nx-cloud
- Faça uma cópia de
nx-cloud.env.example
do diretório raiz do projeto e nomeie-o comonx-cloud.env
e substitua opelo token fornecido.
Entre no diretório do projeto
cd deriv-app
Instale suas dependências:
npm run bootstrap
Construir pacotes:
npm run build:all
Nome do pacote | Documentos | Versão |
---|---|---|
Account | - | - |
Appstore | - | |
Bot-skeleton | - | |
Bot-web-ui | - | |
Cashier | - | |
Cfd | - | |
Components | - | |
Core | - | |
Indicators | - | |
P2P | ||
Publisher | - | |
Shared | - | |
Trader | - | |
Translations | - |
Todos os pacotes devem conter os seguintes scripts para executar as ações indicadas:
Parâmetro do pacote | Comando | Descrição |
---|---|---|
✅ | start | Executa o conjunto completo de teste e compilação e inicia o servidor de desenvolvimento. |
✅ | serve | Executa o build suite e inicia o servidor de desenvolvimento. Ao servir core , utiliza o valor open opcional como argumento para abrir uma página específica. (por exemplo: npm run serve core --open=bot ) |
✅ | build:one | Executa o build suite e gera o resultado em dist para o nome do pacote passado. |
✅ | build:all | Executa conjuntos de construção para todos os pacotes e gera o resultado em dist . |
✅ | test | Executa o conjunto de testes com eslint, stylelint e jest. |
✅ | test:jest | Executa apenas o conjunto de testes jest. |
✅ | test:qa | Executa o conjunto de testes e2e. |
✅ | test:performance | Executa o conjunto de testes de desempenho. |
Observação: siga o README de cada pacote com o qual você pretende trabalhar para saber como configurá-lo e seus scripts personalizados. No entanto, os scripts acima podem ser executados no diretório raiz da seguinte maneira.
Cada pacote é nomeado com o prefixo @deriv/
, porém para os scripts acima, você não precisa adicionar o prefixo @deriv/
pois os scripts já prefixam o primeiro argumento do script com @deriv/
. No entanto , se você usar o lerna
CLI diretamente, precisará usar o nome completo do pacote, incluindo o prefixo @deriv/
.
Você pode encontrar os nomes dos pacotes navegando primeiro até a pasta packages
. Cada subpasta é um pacote e contém um arquivo package.json
. O valor da chave name
em package.json
é o nome do pacote.
Se você deseja trabalhar no Core, basta executar npm run serve core
.
Mas para trabalhar em qualquer um dos outros pacotes (como Trader, Bot, P2P), faça o seguinte:
npm run serve {package name}
no primeiro. por exemplo: npm run serve translations
, npm run serve bot
, etc.npm run serve core
no segundo. Se você pretende remover a(s) pasta(s) node_modules
dos projetos, execute npm run clean
na raiz do projeto.
Isso executa lerna clean && rm -rf $(git rev-parse --show-toplevel)/node_modules
nos bastidores. Você pode ler mais sobre os vários comandos lerna (e o comando clean
) na documentação do Lerna.
Nota : No caso de enfrentar um erro de permissão negada, simplesmente execute sudo chown -R $(whoami) .
da raiz do projeto.
npm cache clean -f
✅ core
é necessário para executar qualquer um dos outros pacotes, como se você quiser executar o bot-web-ui, o núcleo deve ser instanciado antes.
npm run serve core
Se um script suportar o "parâmetro de pacote", você pode fornecer um {package name}
para ele executar o script. No momento, apenas 1 nome de pacote pode ser fornecido a um script, se você deseja executar em vários, por favor use o comando lerna
que é usado nos bastidores, conforme sua documentação.
✅ Para executar o pacote bot
, basta executar:
npm run serve bot-web-ui
✅ Da mesma forma para trader
(ou qualquer outro pacote) com script diferente:
npm run test:stylelint trader
Existem 2 tipos de lançamento:
git tag staging_v20191205 -m 'release staging'
# a tag precisa seguir o formato RegExp /^staging.*/
git push origin staging_v20191205
git tag production_v20191205 -m 'release production'
git push origin production_v20191205
Existe um quarto tipo de lançamento: lançamento de pacotes de registro npm (atualmente @deriv/p2p
). Este é um WIP, mas o método atual é:
@deriv
npm.@deriv/p2p
).npm run publish:p2p
. O comando publica todos os pacotes modificados. No entanto, no momento o nome inclui a palavra p2p
para sinalizar o status do WIP e que P2P é o único pacote publicado neste repositório. [{Project Code}] {Developer}/{Clickup Card ID}/{Description}
para títulos de PR. (por exemplo: [COJ] evgeniy/COJ-247/Align next-button on mt5 modal
), onde [COJ] é um código de projeto clickup.Existem dois tipos de visualização da implantação do link de teste:
Ao criar o PR, o Vercel irá gerar automaticamente um link de teste dentro do PR. você pode usar isso para visualizar o link de teste para as alterações feitas.
Se preferir usar a implantação manual, você pode usar a funcionalidade gh-pages para criar um link de teste. aqui estão algumas maneiras de fazer isso:
gh-pages
com: npm run deploy
.br_
e limpar root) sua ramificação gh-pages
e implantar na raiz em um único comando com npm run deploy:clean
gh-pages
para separar a implantação do aplicativo raiz e outras implantações de pasta com: npm run deploy:folder br_test_folder
(o nome da pasta deve ser prefixado com br_
)) Como instalo um pacote npm em um de nossos pacotes?
R. Você pode simplesmente cd
no pacote que deseja instalar e executar npm i package-name
normalmente. Ou simplesmente execute um lerna exec
como lerna exec --scope=local-package -- npm i npm-package-name
, por exemplo: lerna exec --scope=@deriv/translations -- npm i i18next
. Observe que para uso direto lerna
CLI, você precisa do nome completo do pacote, incluindo o prefixo @deriv/
.
Como desinstalo um pacote npm de um de nossos pacotes?
R. Assim como na instalação, exceto que o comando npm
que você executaria seria npm uninstall
(abreviado para npm un
). por exemplo: lerna exec --scope=@deriv/translations -- npm un i18next
.
Como executo npm ci
ou equivalente para adicionar dependências baseadas em package-lock.json
?
R. Você tem duas opções:
lerna exec
com o argumento --scope
como o pacote no qual você deseja executar o comando, como tal lerna exec --scope=trader -- npm ci
.cd
em packages/PACKAGE-NAME
e execute npm ci
, como tal cd packages/trader && npm ci
Minha(s) compilação(ões) falha(m) e posso vê-la relacionada ao Node Sass ( node-sass
), o que eu faço?
R. Esse problema acontece quando seu node-sass
tem seu binding.node
definido para uma versão do node diferente da versão do projeto atual. Por favor, tente o seguinte em ordem:
npx lerna exec -- npm rebuild node-sass
e tente construir seus pacotes novamente.npm cache clean --force
, seguido por npm run clean
e depois npm run bootstrap
. Como posso regenerar o arquivo package-lock.json
?
Adicionamos bootstrap:dev
aos scripts. Se você estiver atualizando ou adicionando um pacote e deseja regenerar o arquivo package-lock.json
, você deve executar este comando npm run bootstrap:dev