このリポジトリには、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 | パフォーマンス テスト スイートを実行します。 |
注: セットアップ方法とカスタム スクリプトについては、使用する各パッケージの README に従ってください。ただし、上記のスクリプトは、次の方法でルート ディレクトリから実行できます。
各パッケージの名前には@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 コマンド (およびclean
コマンド) の詳細については、Lerna ドキュメントを参照してください。
注: アクセス許可拒否エラーが発生した場合は、単にsudo chown -R $(whoami) .
プロジェクトのルートから。
npm cache clean -f
✅ 他のパッケージを実行するにはcore
必要です。たとえば、bot-web-ui を実行したい場合は、コアを事前にインスタンス化する必要があります。
npm run serve core
スクリプトが「パッケージ パラメータ」をサポートしている場合、スクリプトを実行するための{package name}
を指定できます。現時点では、スクリプトに指定できるパッケージ名は 1 つだけです。複数で実行したい場合は、そのパッケージ名を指定してください。ドキュメントに従って内部で使用されるlerna
コマンドを使用します。
✅ 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
リリースには 4 番目のタイプがあります。npm レジストリ パッケージのリリースです (現在は@deriv/p2p
)。これは作業途中ですが、現在の方法は次のとおりです。
@deriv
npm 組織名前空間のメンバーシップを取得します。@deriv/p2p
) があることを確認してください。npm run publish:p2p
実行します。このコマンドは、バンプされたすべてのパッケージを公開します。ただし、現時点では、WIP ステータスを示すために名前にp2p
単語が含まれており、P2P がこのリポジトリで公開されている唯一のパッケージであることを示しています。 [{Project Code}] {Developer}/{Clickup Card ID}/{Description}
の形式を使用します。 (例: [COJ] evgeniy/COJ-247/Align next-button on mt5 modal
)、[COJ] はクリックアップ プロジェクト コードです。テスト リンク展開プレビューには 2 つのタイプがあります。
PR を作成すると、Vercel は PR 内にテスト リンクを自動生成します。これを使用して、加えた変更のテスト リンクをプレビューできます。
手動展開を使用する場合は、gh-pages 機能を使用してテスト リンクを作成できます。その方法は次のとおりです。
npm run deploy
使用して、 gh-pages
ブランチのルートに簡単にデプロイできます。npm run deploy:clean
1 つのコマンドで、 gh-pages
ブランチをクリーン ( br_
フォルダーを削除してルートをクリア) し、ルートにデプロイできます。npm run deploy:folder br_test_folder
(フォルダー名には接頭辞br_
を付ける必要があります)) を使用して、 gh-pages
ブランチ内のフォルダーにデプロイして、ルート アプリのデプロイメントや他のフォルダー デプロイメントから分離できます。 npm パッケージをパッケージにインストールするにはどうすればよいですか?
A.インストールしたいパッケージにcd
で移動し、通常どおりnpm i package-name
実行するだけです。または、単純にlerna exec --scope=local-package -- npm i npm-package-name
のようなlerna exec
を実行します (例: lerna exec --scope=@deriv/translations -- npm i i18next
。 lerna
CLI を直接使用するには、 @deriv/
プレフィックスを含む完全なパッケージ名が必要であることに注意してください。
いずれかのパッケージから npm パッケージをアンインストールするにはどうすればよいですか?
A.インストールと同じですが、実行するnpm
コマンドがnpm uninstall
( npm un
と短縮されます) になる点が異なります。例: lerna exec --scope=@deriv/translations -- npm un i18next
。
npm ci
または同等のコマンドを実行して、 package-lock.json
に基づいて依存関係を追加するにはどうすればよいですか?
A.次の 2 つのオプションがあります。
lerna exec --scope=trader -- npm ci
のように、コマンドを実行するパッケージとして--scope
引数を指定してlerna exec
使用します。cd
で、 packages/PACKAGE-NAME
に移動し、 npm ci
実行します。たとえば、 cd packages/trader && npm ci
ビルドが失敗し、Node Sass ( node-sass
) に関連していることがわかります。どうすればよいですか?
A.この問題は、 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