该存储库包含 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”,您可以提供一个{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
有第四种发布类型:发布 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