Este repositorio contiene las distintas plataformas de la aplicación Deriv.
En este documento :
Antes de ejecutar o contribuir a este proyecto, necesita tener configurado el siguiente paquete en su entorno.
contribution
) bifurcar el proyecto
Para trabajar en su propia versión de la aplicación Deriv, bifurque el proyecto en su propio repositorio.
Clonar usando SSH
git clone [email protected]:deriv-com/deriv-app.git
Interno : integración de NX y Lerna
- Busque y copie el token de acceso de nx-cloud
- Haga una copia de
nx-cloud.env.example
desde el directorio raíz del proyecto y asígnele el nombrenx-cloud.env
y reemplace elcon el token proporcionado.
Ingrese al directorio del proyecto
cd deriv-app
Instale sus dependencias:
npm run bootstrap
Paquetes de compilación:
npm run build:all
Nombre del paquete | Documentos | Versión |
---|---|---|
Account | - | - |
Appstore | - | |
Bot-skeleton | - | |
Bot-web-ui | - | |
Cashier | - | |
Cfd | - | |
Components | - | |
Core | - | |
Indicators | - | |
P2P | ||
Publisher | - | |
Shared | - | |
Trader | - | |
Translations | - |
Todos los paquetes deben contener los siguientes scripts para realizar las acciones indicadas:
Parámetro del paquete | Dominio | Descripción |
---|---|---|
✅ | start | Ejecuta el conjunto completo de prueba y compilación e inicia el servidor de desarrollo. |
✅ | serve | Ejecuta el conjunto de compilación e inicia el servidor de desarrollo. Cuando se sirve core , toma el valor open opcional como argumento para abrir una página específica. (por ejemplo: npm run serve core --open=bot ) |
✅ | build:one | Ejecuta el conjunto de compilación y genera el resultado en dist para el nombre del paquete pasado. |
✅ | build:all | Ejecuta conjuntos de compilación para todos los paquetes y genera el resultado en dist . |
✅ | test | Ejecuta el conjunto de pruebas con eslint, stylelint y jest. |
✅ | test:jest | Ejecuta solo el conjunto de pruebas Jest. |
✅ | test:qa | Ejecuta el conjunto de pruebas e2e. |
✅ | test:performance | Ejecuta el conjunto de pruebas de rendimiento. |
Nota: Siga el archivo README de cada paquete con el que desee trabajar sobre cómo configurarlo y sus scripts personalizados. Sin embargo, los scripts anteriores se pueden ejecutar desde el directorio raíz de la siguiente manera.
Cada paquete se nombra con el prefijo @deriv/
; sin embargo, para los scripts anteriores, no es necesario agregar el prefijo @deriv/
ya que los scripts ya anteponen el primer argumento del script con @deriv/
. Sin embargo , si utiliza la CLI lerna
directamente, deberá utilizar el nombre completo del paquete, incluido el prefijo @deriv/
.
Puede encontrar los nombres de los paquetes navegando primero a la carpeta packages
. Cada subcarpeta es un paquete y contiene un archivo package.json
. El valor de la clave name
en package.json
es el nombre del paquete.
Si desea trabajar en Core, simplemente ejecute npm run serve core
.
Pero para trabajar en cualquiera de los otros paquetes (como Trader, Bot, P2P), realice lo siguiente:
npm run serve {package name}
en el primero. por ejemplo: npm run serve translations
, npm run serve bot
, etc.npm run serve core
en el segundo. Si tiene la intención de eliminar las carpetas node_modules
de los proyectos, ejecute npm run clean
desde la raíz del proyecto.
Esto ejecuta lerna clean && rm -rf $(git rev-parse --show-toplevel)/node_modules
debajo del capó. Puede leer más sobre los distintos comandos de Lerna (y el comando clean
) en los documentos de Lerna.
Nota : En caso de que se produzca un error de permiso denegado, simplemente ejecute sudo chown -R $(whoami) .
desde la raíz del proyecto.
npm cache clean -f
✅ Se requiere core
para ejecutar cualquiera de los otros paquetes, por ejemplo, si desea ejecutar bot-web-ui, se debe crear una instancia del core antes.
npm run serve core
Si un script admite el "parámetro de paquete", puede proporcionar un {package name}
para ejecutar el script. Por el momento, solo se puede asignar 1 nombre de paquete a un script; si desea ejecutar varios, por favor use el comando lerna
que se usa bajo el capó según sus documentos.
✅ Para ejecutar el paquete bot
, simplemente ejecute:
npm run serve bot-web-ui
✅ Lo mismo ocurre con trader
(o cualquier otro paquete) con un script diferente:
npm run test:stylelint trader
Hay 2 tipos de liberación:
git tag staging_v20191205 -m 'release staging'
# la etiqueta debe seguir el formato RegExp /^staging.*/
git push origin staging_v20191205
git tag production_v20191205 -m 'release production'
git push origin production_v20191205
Hay un cuarto tipo de lanzamiento: lanzar paquetes de registro npm (actualmente @deriv/p2p
). Este es un WIP, pero el método actual es:
@deriv
npm.@deriv/p2p
).npm run publish:p2p
. El comando publica todos los paquetes afectados. Sin embargo, en este momento el nombre incluye la palabra p2p
para indicar el estado de WIP y que P2P es el único paquete publicado en este repositorio. [{Project Code}] {Developer}/{Clickup Card ID}/{Description}
para títulos de relaciones públicas. (por ejemplo: [COJ] evgeniy/COJ-247/Align next-button on mt5 modal
), donde [COJ] es un código de proyecto de clic.Hay dos tipos de vista previa de implementación de enlace de prueba:
Al crear el PR, Vercel generará automáticamente un enlace de prueba dentro del PR. puede usarlo para obtener una vista previa del enlace de prueba de los cambios que ha realizado.
Si prefiere utilizar la implementación manual, puede utilizar la funcionalidad gh-pages para crear un enlace de prueba. Aquí hay formas de hacerlo:
gh-pages
con: npm run deploy
.br_
y borrar la raíz) su rama gh-pages
e implementarla en la raíz con un solo comando con npm run deploy:clean
gh-pages
para separarla de la implementación de la aplicación raíz y otras implementaciones de carpetas con: npm run deploy:folder br_test_folder
(el nombre de la carpeta debe tener el prefijo br_
)) ¿Cómo instalo un paquete npm en uno de nuestros paquetes?
R. Simplemente puede cd
el paquete que desea instalar y luego ejecutar npm i package-name
como de costumbre. O simplemente ejecute un lerna exec
como lerna exec --scope=local-package -- npm i npm-package-name
, por ejemplo: lerna exec --scope=@deriv/translations -- npm i i18next
. Tenga en cuenta que para el uso directo de la CLI lerna
, necesita el nombre completo del paquete, incluido el prefijo @deriv/
.
¿Cómo desinstalo un paquete npm de uno de nuestros paquetes?
R. Al igual que la instalación, excepto que el comando npm
que ejecutaría sería npm uninstall
(abreviado como npm un
). por ejemplo: lerna exec --scope=@deriv/translations -- npm un i18next
.
¿Cómo ejecuto npm ci
o equivalente para agregar dependencias basadas en package-lock.json
?
R. Tienes dos opciones:
lerna exec
con el argumento --scope
como el paquete en el que desea ejecutar el comando, como tal lerna exec --scope=trader -- npm ci
.cd
en packages/PACKAGE-NAME
y ejecute npm ci
, como tal cd packages/trader && npm ci
Mis compilaciones fallan y puedo verlas relacionadas con Node Sass ( node-sass
), ¿qué hago?
R. Este problema ocurre cuando su node-sass
tiene su binding.node
configurado en una versión de nodo diferente a la del proyecto actual. Intente lo siguiente en orden:
npx lerna exec -- npm rebuild node-sass
e intente compilar sus paquetes nuevamente.npm cache clean --force
, seguido de npm run clean
y luego npm run bootstrap
. ¿Cómo puedo regenerar el archivo package-lock.json
?
Hemos agregado bootstrap:dev
a los scripts. Si está actualizando o agregando un paquete y desea regenerar el archivo package-lock.json
, debe ejecutar este comando npm run bootstrap:dev