Ce référentiel contient les différentes plateformes de l'application Deriv.
Dans ce document :
Avant d'exécuter ou de contribuer à ce projet, vous devez avoir installé le package suivant dans votre environnement.
contribution
) Forkez le projet
Afin de travailler sur votre propre version de l'application Deriv, veuillez transférer le projet vers votre propre référentiel.
Cloner en utilisant SSH
git clone [email protected]:deriv-com/deriv-app.git
Interne : Intégration NX et Lerna
- Rechercher et copier nx-cloud accessToken
- Faites une copie de
nx-cloud.env.example
à partir du répertoire racine du projet, nommez-nx-cloud.env
et remplacez lepar le jeton fourni.
Entrez dans le répertoire du projet
cd deriv-app
Installez vos dépendances :
npm run bootstrap
Construire des packages :
npm run build:all
Nom du package | Documents | Version |
---|---|---|
Account | - | - |
Appstore | - | |
Bot-skeleton | - | |
Bot-web-ui | - | |
Cashier | - | |
Cfd | - | |
Components | - | |
Core | - | |
Indicators | - | |
P2P | ||
Publisher | - | |
Shared | - | |
Trader | - | |
Translations | - |
Tous les packages doivent contenir les scripts suivants pour effectuer les actions indiquées :
Paramètre du paquet | Commande | Description |
---|---|---|
✅ | start | Exécute la suite complète de tests et de construction et démarre le serveur de développement. |
✅ | serve | Exécute la suite de build et démarre le serveur de développement. Lors du service core , prend la valeur open facultative comme argument pour ouvrir une page spécifique. (par exemple : npm run serve core --open=bot ) |
✅ | build:one | Exécute la suite de build et affiche le résultat dans dist pour le nom du package transmis. |
✅ | build:all | Exécute les suites de build pour tous les packages et affiche le résultat dans dist . |
✅ | test | Exécute la suite de tests avec eslint, stylelint et jest. |
✅ | test:jest | Exécute uniquement la suite de tests Jest. |
✅ | test:qa | Exécute la suite de tests e2e. |
✅ | test:performance | Exécute la suite de tests de performances. |
Remarque : veuillez suivre le README de chaque package avec lequel vous avez l'intention de travailler pour savoir comment configurer et leurs scripts personnalisés. Cependant, les scripts ci-dessus peuvent être exécutés à partir du répertoire racine de la manière suivante.
Chaque package est nommé avec le préfixe @deriv/
, cependant pour les scripts ci-dessus, vous n'avez pas besoin d'ajouter le préfixe @deriv/
car les scripts préfixent déjà le 1er argument du script avec @deriv/
. Cependant , si vous utilisez directement la CLI lerna
, vous devrez alors utiliser le nom complet du package, y compris le préfixe @deriv/
.
Vous pouvez trouver les noms des packages en accédant d’abord au dossier packages
. Chaque sous-dossier est un package et contient un fichier package.json
. La valeur de la clé name
dans package.json
est le nom du package.
Si vous souhaitez travailler sur Core, exécutez simplement npm run serve core
.
Mais pour travailler sur l'un des autres packages (tels que Trader, Bot, P2P), effectuez les opérations suivantes :
npm run serve {package name}
dans le premier. Par exemple : npm run serve translations
, npm run serve bot
, etc.npm run serve core
dans le second. Si vous avez l'intention de supprimer le(s) dossier(s) node_modules
des projets, veuillez exécuter npm run clean
à partir de la racine du projet.
Cela exécute lerna clean && rm -rf $(git rev-parse --show-toplevel)/node_modules
sous le capot. Vous pouvez en savoir plus sur les différentes commandes lerna (et la commande clean
) dans la documentation Lerna.
Remarque : en cas d'erreur d'autorisation refusée, veuillez simplement exécuter sudo chown -R $(whoami) .
à partir de la racine du projet.
npm cache clean -f
✅ core
est requis pour exécuter l'un des autres packages, par exemple si vous souhaitez exécuter le bot-web-ui, le noyau doit être instancié au préalable.
npm run serve core
Si un script prend en charge le "Param du package", vous pouvez fournir un {package name}
pour qu'il exécute le script. Pour le moment, un seul nom de package peut être donné à un script, si vous souhaitez en exécuter plusieurs, veuillez utilisez la commande lerna
utilisée sous le capot selon sa documentation.
✅ Pour exécuter le package bot
, exécutez simplement :
npm run serve bot-web-ui
✅ De même pour trader
(ou tout autre package) avec un script différent :
npm run test:stylelint trader
Il existe 2 types de libération :
git tag staging_v20191205 -m 'release staging'
# la balise doit suivre le format RegExp /^staging.*/
git push origin staging_v20191205
git tag production_v20191205 -m 'release production'
git push origin production_v20191205
Il existe un 4ème type de version : la publication de packages de registre npm (actuellement @deriv/p2p
). Il s'agit d'un WIP, mais la méthode actuelle est la suivante :
@deriv
npm.@deriv/p2p
).npm run publish:p2p
. La commande publie tous les packages modifiés. Cependant, à l'heure actuelle, le nom inclut le mot p2p
pour signaler le statut WIP et que P2P est le seul package publié dans ce référentiel. [{Project Code}] {Developer}/{Clickup Card ID}/{Description}
pour les titres de relations publiques. (par exemple : [COJ] evgeniy/COJ-247/Align next-button on mt5 modal
), où [COJ] est un code de projet clickup.Il existe deux types d’aperçu du déploiement de liens de test :
Lors de la création du PR, Vercel générera automatiquement un lien de test à l'intérieur du PR. vous pouvez l'utiliser pour prévisualiser le lien de test pour les modifications que vous avez apportées.
Si vous préférez utiliser le déploiement manuel, vous pouvez utiliser la fonctionnalité gh-pages pour créer un lien de test. voici comment procéder :
gh-pages
avec : npm run deploy
.br_
et effacer la racine) votre branche gh-pages
et la déployer à la racine en une seule commande avec npm run deploy:clean
gh-pages
afin de vous séparer du déploiement de l'application racine et des autres déploiements de dossiers avec : npm run deploy:folder br_test_folder
(le nom du dossier doit être préfixé par br_
)) Comment installer un package npm dans l'un de nos packages ?
A. Vous pouvez simplement cd
le package dans lequel vous souhaitez installer, puis exécuter npm i package-name
comme d'habitude. Ou exécutez simplement un lerna exec
comme lerna exec --scope=local-package -- npm i npm-package-name
, par exemple : lerna exec --scope=@deriv/translations -- npm i i18next
. Veuillez noter que pour une utilisation directe lerna
CLI, vous avez besoin du nom complet du package, y compris le préfixe @deriv/
.
Comment désinstaller un package npm d’un de nos packages ?
A. Tout comme l'installation, sauf que la commande npm
que vous exécuteriez serait npm uninstall
(abrégé en npm un
). par exemple : lerna exec --scope=@deriv/translations -- npm un i18next
.
Comment exécuter npm ci
ou équivalent pour ajouter des dépendances basées sur package-lock.json
?
R. Vous avez deux options :
lerna exec
avec l'argument --scope
comme package sur lequel vous souhaitez exécuter la commande, en tant que tel lerna exec --scope=trader -- npm ci
.cd
dans packages/PACKAGE-NAME
et exécutez npm ci
, en tant que tel cd packages/trader && npm ci
Mes builds échouent et je peux le voir lié à Node Sass ( node-sass
), que dois-je faire ?
A. Ce problème se produit lorsque votre node-sass
a son binding.node
défini sur une version de node différente de celle des projets en cours. Veuillez essayer ce qui suit dans l'ordre :
npx lerna exec -- npm rebuild node-sass
et essayez à nouveau de créer vos packages.npm cache clean --force
, suivi de npm run clean
, puis npm run bootstrap
. Comment puis-je régénérer le fichier package-lock.json
?
Nous avons ajouté bootstrap:dev
aux scripts. Si vous mettez à jour ou ajoutez un package et que vous souhaitez régénérer le fichier package-lock.json
, vous devez exécuter cette commande npm run bootstrap:dev