Dieses Repository enthält die verschiedenen Plattformen der Derivat-Anwendung.
In diesem Dokument :
Bevor Sie dieses Projekt ausführen oder dazu beitragen, müssen Sie das folgende Paket in Ihrer Umgebung eingerichtet haben.
contribution
) Forken Sie das Projekt
Um an Ihrer eigenen Version der Derivat-Anwendung zu arbeiten, verzweigen Sie das Projekt bitte in Ihr eigenes Repository.
Klonen Sie mit SSH
git clone [email protected]:deriv-com/deriv-app.git
Intern : NX- und Lerna-Integration
- Suchen und kopieren Sie das nx-cloud accessToken
- Erstellen Sie eine Kopie von
nx-cloud.env.example
aus dem Stammverzeichnis des Projekts, nennen Sie sienx-cloud.env
und ersetzen Sie dasdurch das bereitgestellte Token.
Geben Sie das Projektverzeichnis ein
cd deriv-app
Installieren Sie Ihre Abhängigkeiten:
npm run bootstrap
Pakete erstellen:
npm run build:all
Paketname | Dokumente | Version |
---|---|---|
Account | - | - |
Appstore | - | |
Bot-skeleton | - | |
Bot-web-ui | - | |
Cashier | - | |
Cfd | - | |
Components | - | |
Core | - | |
Indicators | - | |
P2P | ||
Publisher | - | |
Shared | - | |
Trader | - | |
Translations | - |
Alle Pakete müssen die folgenden Skripte enthalten, um die angegebenen Aktionen auszuführen:
Paketparam | Befehl | Beschreibung |
---|---|---|
✅ | start | Führt die komplette Test- und Build-Suite aus und startet den Entwicklungsserver. |
✅ | serve | Führt die Build-Suite aus und startet den Entwicklungsserver. Bei der Bereitstellung core wird der optionale open als Argument zum Öffnen einer bestimmten Seite verwendet. (z. B.: npm run serve core --open=bot ) |
✅ | build:one | Führt die Build-Suite aus und gibt das Ergebnis für den übergebenen Paketnamen in dist aus. |
✅ | build:all | Führt Build-Suites für alle Pakete aus und gibt das Ergebnis in dist aus. |
✅ | test | Führt die Testsuite mit eslint, stylelint und jest aus. |
✅ | test:jest | Führt nur die Jest-Testsuite aus. |
✅ | test:qa | Führt die e2e-Testsuite aus. |
✅ | test:performance | Führt die Leistungstestsuite aus. |
Hinweis: Bitte befolgen Sie die README-Datei jedes Pakets, mit dem Sie arbeiten möchten, um Informationen zur Einrichtung und den benutzerdefinierten Skripts zu erhalten. Die oben genannten Skripte können jedoch wie folgt vom Stammverzeichnis aus ausgeführt werden.
Jedes Paket wird mit dem Präfix @deriv/
benannt. Für die oben genannten Skripte müssen Sie jedoch das Präfix @deriv/
nicht hinzufügen, da die Skripte dem ersten Argument des Skripts bereits @deriv/
voranstellen. Wenn Sie jedoch die lerna
-CLI direkt verwenden, müssen Sie den vollständigen Paketnamen einschließlich des Präfixes @deriv/
verwenden.
Sie können die Namen der Pakete finden, indem Sie zunächst zum packages
navigieren. Jeder Unterordner ist ein Paket und enthält eine package.json
Datei. Der Wert des name
in package.json
ist der Paketname.
Wenn Sie an Core arbeiten möchten, führen Sie einfach npm run serve core
aus.
Führen Sie jedoch Folgendes aus, um an einem der anderen Pakete (z. B. Trader, Bot, P2P) zu arbeiten:
npm run serve {package name}
aus. Beispiel: npm run serve translations
, npm run serve bot
usw.npm run serve core
aus. Wenn Sie beabsichtigen, die Ordner „ node_modules
“ aus den Projekten zu entfernen, führen Sie bitte npm run clean
im Stammverzeichnis des Projekts aus.
Dadurch wird lerna clean && rm -rf $(git rev-parse --show-toplevel)/node_modules
unter der Haube ausgeführt. Weitere Informationen zu den verschiedenen Lerna-Befehlen (und dem clean
-Befehl) finden Sie in den Lerna-Dokumenten.
Hinweis : Im Falle eines Fehlers, bei dem die Berechtigung verweigert wird, führen Sie bitte einfach sudo chown -R $(whoami) .
aus dem Stammverzeichnis des Projekts.
npm cache clean -f
✅ core
ist erforderlich, um alle anderen Pakete auszuführen. Wenn Sie beispielsweise die Bot-Web-UI ausführen möchten, muss der Kern zuvor instanziiert werden.
npm run serve core
Wenn ein Skript den „Paketparameter“ unterstützt, können Sie einen {package name}
für die Ausführung des Skripts angeben. Derzeit kann einem Skript nur ein Paketname zugewiesen werden. Wenn Sie mehrere Pakete ausführen möchten, wenden Sie sich bitte daran Verwenden Sie den Befehl lerna
, der gemäß den Dokumenten unter der Haube verwendet wird.
✅ Um das bot
-Paket auszuführen, führen Sie einfach Folgendes aus:
npm run serve bot-web-ui
✅ Ebenso für trader
(oder jedes andere Paket) mit einem anderen Skript:
npm run test:stylelint trader
Es gibt 2 Arten der Veröffentlichung:
git tag staging_v20191205 -m 'release staging'
# das Tag muss dem RegExp-Format folgen /^staging.*/
git push origin staging_v20191205
git tag production_v20191205 -m 'release production'
git push origin production_v20191205
Es gibt eine vierte Art der Veröffentlichung: die Veröffentlichung von npm-Registrierungspaketen (derzeit @deriv/p2p
). Dies ist ein WIP, aber die aktuelle Methode ist:
@deriv
npm-Organisations-Namespace.@deriv/p2p
).npm run publish:p2p
. Der Befehl veröffentlicht alle erweiterten Pakete. Allerdings enthält der Name derzeit das Wort p2p
um den WIP-Status anzuzeigen und dass P2P das einzige veröffentlichte Paket unter diesem Repo ist. [{Project Code}] {Developer}/{Clickup Card ID}/{Description}
. (z. B.: [COJ] evgeniy/COJ-247/Align next-button on mt5 modal
), wobei [COJ] ein Clickup-Projektcode ist.Es gibt zwei Arten der Testlink-Bereitstellungsvorschau:
Beim Erstellen der PR generiert Vercel automatisch einen Testlink innerhalb der PR. Sie können damit eine Vorschau des Testlinks für die von Ihnen vorgenommenen Änderungen anzeigen.
Wenn Sie die manuelle Bereitstellung bevorzugen, können Sie die gh-pages-Funktionalität verwenden, um einen Testlink zu erstellen. Hier sind Möglichkeiten, dies zu tun:
gh-pages
-Zweigs durchführen mit: npm run deploy
.gh-pages
-Zweig bereinigen ( br_
Ordner entfernen und Root löschen) und ihn in einem einzigen Befehl mit npm run deploy:clean
im Root bereitstellengh-pages
-Zweig durchführen, um sie von der Root-App-Bereitstellung und anderen Ordnerbereitstellungen zu trennen, indem Sie: npm run deploy:folder br_test_folder
(dem Ordnernamen muss br_
vorangestellt werden). Wie installiere ich ein npm-Paket in einem unserer Pakete?
A. Sie können einfach cd
das Paket aufrufen, das Sie installieren möchten, und dann wie gewohnt npm i package-name
ausführen. Oder führen Sie einfach eine lerna exec
wie lerna exec --scope=local-package -- npm i npm-package-name
aus, z. B.: lerna exec --scope=@deriv/translations -- npm i i18next
. Bitte beachten Sie, dass Sie für die direkte Nutzung lerna
-CLI den vollständigen Paketnamen einschließlich des Präfixes @deriv/
benötigen.
Wie deinstalliere ich ein npm-Paket aus einem unserer Pakete?
A. Genau wie bei der Installation, außer dass der npm
-Befehl, den Sie ausführen würden, npm uninstall
wäre (abgekürzt zu npm un
). Beispiel: lerna exec --scope=@deriv/translations -- npm un i18next
.
Wie führe ich npm ci
oder ein gleichwertiges Produkt aus, um Abhängigkeiten basierend auf package-lock.json
hinzuzufügen?
A. Sie haben zwei Möglichkeiten:
lerna exec
mit dem Argument --scope
als Paket, auf dem Sie den Befehl ausführen möchten, also lerna exec --scope=trader -- npm ci
.cd
in packages/PACKAGE-NAME
und führen Sie npm ci
aus, also cd packages/trader && npm ci
Meine Build(s) schlagen fehl und ich kann sehen, dass es mit Node Sass ( node-sass
) zusammenhängt. Was kann ich tun?
A. Dieses Problem tritt auf, wenn binding.node
Ihres node-sass
auf eine andere Node-Version als die des aktuellen Projekts eingestellt ist. Bitte versuchen Sie Folgendes der Reihe nach:
npx lerna exec -- npm rebuild node-sass
aus und versuchen Sie erneut, Ihre Pakete zu erstellen.npm cache clean --force
, gefolgt von npm run clean
und dann npm run bootstrap
. Wie kann ich die Datei package-lock.json
neu generieren?
Wir haben bootstrap:dev
zu Skripten hinzugefügt. Wenn Sie ein Paket aktualisieren oder hinzufügen und die Datei package-lock.json
neu generieren möchten, sollten Sie diesen Befehl ausführen npm run bootstrap:dev