Repositori ini berisi berbagai platform aplikasi Deriv.
Dalam dokumen ini :
Sebelum menjalankan atau berkontribusi pada proyek ini, Anda perlu menyiapkan paket berikut di lingkungan Anda.
contribution
) Garpu proyeknya
Agar dapat bekerja pada aplikasi Deriv versi Anda sendiri, harap fork proyek ke repositori Anda sendiri.
Klon menggunakan SSH
git clone [email protected]:deriv-com/deriv-app.git
Internal : Integrasi NX dan Lerna
- Temukan dan salin nx-cloud accessToken
- Buat salinan
nx-cloud.env.example
dari direktori root proyek dan beri namanx-cloud.env
dan gantidengan token yang disediakan.
Masuk ke direktori proyek
cd deriv-app
Instal dependensi Anda:
npm run bootstrap
Paket pembuatan:
npm run build:all
Nama paket | dokumen | Versi |
---|---|---|
Account | - | - |
Appstore | - | |
Bot-skeleton | - | |
Bot-web-ui | - | |
Cashier | - | |
Cfd | - | |
Components | - | |
Core | - | |
Indicators | - | |
P2P | ||
Publisher | - | |
Shared | - | |
Trader | - | |
Translations | - |
Semua paket harus berisi skrip berikut untuk melakukan tindakan yang disebutkan:
Parameter paket | Memerintah | Keterangan |
---|---|---|
✅ | start | Menjalankan pengujian lengkap dan rangkaian build serta memulai server dev. |
✅ | serve | Menjalankan build suite dan memulai server dev. Saat menyajikan core , gunakan nilai open opsional sebagai argumen untuk membuka halaman tertentu. (misal: npm run serve core --open=bot ) |
✅ | build:one | Menjalankan build suite dan menampilkan hasilnya ke dist untuk nama paket yang diteruskan. |
✅ | build:all | Menjalankan build suite untuk semua paket dan menampilkan hasilnya ke dist . |
✅ | test | Jalankan rangkaian pengujian dengan eslint, stylelint, dan jest. |
✅ | test:jest | Hanya menjalankan rangkaian uji jest. |
✅ | test:qa | Menjalankan rangkaian pengujian e2e. |
✅ | test:performance | Menjalankan rangkaian pengujian kinerja. |
Catatan: Harap ikuti README setiap paket yang ingin Anda kerjakan tentang cara menyiapkan dan skrip khusus mereka. Namun skrip di atas dapat dijalankan dari direktori root dengan cara berikut.
Setiap paket diberi nama dengan awalan @deriv/
, namun untuk skrip di atas, Anda tidak perlu menambahkan awalan @deriv/
karena skrip sudah mengawali argumen pertama skrip dengan @deriv/
. Namun , jika Anda menggunakan lerna
CLI secara langsung, maka Anda perlu menggunakan nama paket lengkap termasuk awalan @deriv/
.
Anda dapat menemukan nama paket dengan terlebih dahulu menavigasi ke folder packages
. Setiap sub-folder adalah sebuah paket dan berisi file package.json
. Nilai kunci name
di package.json
adalah nama paket.
Jika Anda ingin mengerjakan Core, jalankan saja npm run serve core
.
Namun untuk mengerjakan paket lainnya (seperti Trader, Bot, P2P), lakukan hal berikut:
npm run serve {package name}
yang pertama. misalnya: npm run serve translations
, npm run serve bot
, dll.npm run serve core
yang kedua. Jika Anda ingin menghapus folder node_modules
dari proyek, jalankan npm run clean
dari root proyek.
Ini menjalankan lerna clean && rm -rf $(git rev-parse --show-toplevel)/node_modules
di bawah tenda. Anda dapat membaca lebih lanjut tentang berbagai perintah lerna (dan perintah clean
) di dokumen Lerna.
Catatan : Jika menghadapi kesalahan izin ditolak, jalankan saja sudo chown -R $(whoami) .
dari akar proyek.
npm cache clean -f
✅ core
diperlukan untuk menjalankan paket lain seperti jika Anda ingin menjalankan bot-web-ui, inti harus dipakai sebelumnya.
npm run serve core
Jika skrip mendukung "Param paket", Anda dapat menyediakan {package name}
agar skrip dapat dijalankan. Saat ini, hanya 1 nama paket yang dapat diberikan ke skrip, jika Anda ingin menjalankannya dalam beberapa, silakan gunakan perintah lerna
yang digunakan sesuai dokumennya.
✅ Untuk menjalankan paket bot
, cukup jalankan:
npm run serve bot-web-ui
✅ Begitu pula untuk trader
(atau paket lainnya) dengan skrip berbeda:
npm run test:stylelint trader
Ada 2 jenis rilis:
git tag staging_v20191205 -m 'release staging'
# tag harus mengikuti format RegExp /^staging.*/
git push origin staging_v20191205
git tag production_v20191205 -m 'release production'
git push origin production_v20191205
Ada jenis rilis ke-4: merilis paket registri npm (saat ini @deriv/p2p
). Ini WIP, tetapi metode saat ini adalah:
@deriv
npm.@deriv/p2p
).npm run publish:p2p
. Perintah ini menerbitkan semua paket yang terbentur. Namun, saat ini namanya menyertakan kata p2p
untuk menandakan status WIP dan P2P adalah satu-satunya paket yang diterbitkan di bawah repo ini. [{Project Code}] {Developer}/{Clickup Card ID}/{Description}
untuk judul PR. (misal: [COJ] evgeniy/COJ-247/Align next-button on mt5 modal
), dengan [COJ] adalah kode proyek clickup.Ada dua jenis pratinjau penerapan tautan pengujian:
Saat membuat PR, Vercel akan secara otomatis membuat tautan pengujian di dalam PR. Anda dapat menggunakannya untuk melihat pratinjau tautan pengujian untuk perubahan yang telah Anda buat.
Jika lebih baik menggunakan penerapan manual, Anda dapat menggunakan fungsionalitas gh-pages untuk membuat tautan pengujian. berikut cara melakukannya:
gh-pages
dengan: npm run deploy
.br_
dan menghapus root) cabang gh-pages
Anda dan menyebarkan ke root dalam satu perintah dengan npm run deploy:clean
gh-pages
Anda untuk memisahkan dari penerapan aplikasi root dan penerapan folder lainnya dengan: npm run deploy:folder br_test_folder
(nama folder harus diawali dengan br_
)) Bagaimana cara menginstal paket npm di salah satu paket kami?
A. Anda cukup melakukan cd
ke dalam paket yang ingin Anda instal, lalu jalankan npm i package-name
seperti biasa. Atau cukup jalankan lerna exec
seperti lerna exec --scope=local-package -- npm i npm-package-name
, misalnya: lerna exec --scope=@deriv/translations -- npm i i18next
. Harap dicatat bahwa untuk penggunaan lerna
CLI secara langsung, Anda memerlukan nama paket lengkap termasuk awalan @deriv/
.
Bagaimana cara menghapus paket npm dari salah satu paket kami?
A. Sama seperti menginstal, kecuali perintah npm
yang Anda jalankan adalah npm uninstall
(disingkat menjadi npm un
). misalnya: lerna exec --scope=@deriv/translations -- npm un i18next
.
Bagaimana cara menjalankan npm ci
atau setara untuk menambahkan dependensi berdasarkan package-lock.json
?
J. Anda memiliki dua pilihan:
lerna exec
dengan argumen --scope
sebagai paket tempat Anda ingin menjalankan perintah, seperti lerna exec --scope=trader -- npm ci
.cd
ke dalam packages/PACKAGE-NAME
dan jalankan npm ci
, seperti cd packages/trader && npm ci
Build saya gagal dan saya melihatnya terkait dengan Node Sass ( node-sass
), apa yang harus saya lakukan?
A. Masalah ini terjadi ketika node-sass
Anda memiliki binding.node
yang disetel ke versi node yang berbeda dari versi proyek saat ini. Silakan coba yang berikut ini secara berurutan:
npx lerna exec -- npm rebuild node-sass
dan coba buat paket Anda lagi.npm cache clean --force
, diikuti dengan npm run clean
, lalu npm run bootstrap
. Bagaimana cara membuat ulang file package-lock.json
?
Kami telah menambahkan bootstrap:dev
ke skrip. Jika Anda memperbarui atau menambahkan paket dan ingin membuat ulang file package-lock.json
, Anda harus menjalankan perintah ini npm run bootstrap:dev