此儲存庫包含 Deriv 應用程式的各個平台。
在本文檔中:
在運行或貢獻此專案之前,您需要在您的環境中設定以下套件。
contribution
) 分叉項目
為了使用您自己的 Deriv 應用程式版本,請將專案分叉到您自己的儲存庫。
使用 SSH 克隆
git clone [email protected]:deriv-com/deriv-app.git
內部:NX 和 Lerna 集成
- 尋找並複製 nx-cloud accessToken
- 從專案的根目錄複製
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 | 運行性能測試套件。 |
注意:請遵循您想要使用的每個軟體包的自述文件,以了解如何設定及其自訂腳本。但是,可以透過以下方式從根目錄執行上述腳本。
每個套件都使用@deriv/
前綴命名,但是對於上面的腳本,您不需要添加@deriv/
前綴,因為腳本已經在腳本的第一個參數前面添加了@deriv/
前綴。但是,如果您直接使用lerna
CLI,則需要使用完整的套件名稱,包括@deriv/
前綴。
您可以先導航到packages
夾來找到套件的名稱。每個子資料夾都是一個包,包含一個package.json
檔案。 package.json
中name
鍵的值是套件名稱。
如果您希望在 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 文件中閱讀有關各種 lerna 命令(和clean
命令)的更多資訊。
注意:如果遇到權限被拒絕錯誤,請簡單地執行sudo chown -R $(whoami) .
從專案的根開始。
npm cache clean -f
✅ 運行任何其他套件都需要core
,例如如果您想執行 bot-web-ui,則必須先實例化核心。
npm run serve core
如果腳本支援“Package param”,您可以提供一個{ lerna
{package name}
來執行該腳本。命令。
✅ 為了運行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
有第四種發布類型:發布 npm 註冊表包(目前@deriv/p2p
)。這是一個 WIP,但目前的方法是:
@deriv
npm 組織命名空間的成員資格。@deriv/p2p
)。npm run publish:p2p
。該命令發布所有已碰撞的包。然而,現在該名稱包含單字p2p
來表示 WIP 狀態,而 P2P 是此儲存庫下唯一發布的軟體包。 [{Project Code}] {Developer}/{Clickup Card ID}/{Description}
格式。 (例如: [COJ] evgeniy/COJ-247/Align next-button on mt5 modal
),其中 [COJ] 是點選項目代碼。測試連結部署預覽有兩種類型:
建立 PR 後,Vercel 會在 PR 內自動產生測試連結。您可以使用它來預覽您所做的更改的測試連結。
如果更願意使用手動部署,您可以使用 gh-pages 功能來建立測試連結。有以下方法:
gh-pages
分支的根目錄: npm run deploy
。npm run deploy:clean
在單一命令中清理(刪除br_
資料夾並清除 root)您的gh-pages
分支並部署到 rootgh-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
。請注意,要直接使用lerna
CLI,您需要包含@deriv/
前綴的完整包名稱。
如何從我們的某個軟體包中卸載npm 軟體包?
答:就像安裝一樣,只不過您執行的npm
指令是npm uninstall
(縮寫為npm un
)。例如: lerna exec --scope=@deriv/translations -- npm un i18next
。
如何運行npm ci
或等效項來新增基於package-lock.json
依賴項?
答:您有兩個選擇:
--scope
參數的lerna exec
作為要執行指令的套件,例如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