Docs Menu
Docs Home
/ /
Funciones

Dependencias externas

Una dependencia externa es una librería que incluye código que no puedes o no deseas implementar por tu cuenta. Por ejemplo, podrías utilizar una librería oficial para un servicio externo o una implementación personalizada de una estructura de datos o algoritmo.

Atlas App Services transpila automáticamente las dependencias y también admite la mayoría de los módulos Node.js integrados.

Nota

Crea tus propios módulos

Aunque la mayoría de los módulos npm son desarrollados por terceros, también puedes crear y publicar tus propios módulos npm para alojar la lógica específica de tu aplicación. Puedes poner tus módulos a disposición de la comunidad Node.js o reservarlos para uso privado. Para más información, consulta la guía de npm en Contribuyendo paquetes al registro.

Para importar y usar una dependencia externa, primero debe agregarla a su aplicación. Puede agregar paquetes por nombre o cargar un directorio de dependencias.

Importante

Anular dependencias existentes

Solo puedes usar un método a la vez para especificar los paquetes externos que tu aplicación puede usar. El método más reciente que hayas usado para especificar las dependencias es la fuente de confianza y anula las especificaciones anteriores.

Por ejemplo, un paquete agregado por nombre a través de la interfaz de usuario anula cualquier copia del mismo paquete que haya agregado anteriormente, incluidas aquellas en un directorio de dependencia cargado.

Puedes agregar paquetes desde el registro de npm a tu aplicación por nombre. Puedes agregar una versión específica o usar la más reciente.

1
  1. Seleccionar Functions desde el menú de navegación de la izquierda.

  2. Seleccione la pestaña Dependencies.

  3. Haga clic en el botón Add Dependency.

2

En la ventana modal Add Dependency que aparece a partir de las acciones realizadas en el paso anterior, incluya la siguiente información:

Campo
Descripción

Definir un nombre de paquete

El nombre del paquete npm.

Versión del paquete

Opcional. Versión específica de la dependencia que se usará. De forma predeterminada, App Services usa la última versión disponible.

Haga clic en el botón Add para comenzar a agregar el paquete.

Puede seguir el estado de la adición de la dependencia en el rastreador de progreso, en la parte inferior de la ventana. Este rastreador muestra un mensaje que le informa si el paquete se agregó correctamente o no. Los mensajes de error contienen información adicional sobre por qué no se pudo agregar el paquete.

Si los borradores están habilitados, también deberá hacer clic en Review & Deploy para aplicar estos cambios.

3

Si App Services agrega correctamente la dependencia, la verá en la lista de dependencias en la pestaña Dependencies.

1

Lleva tu aplicación a tu dispositivo con el comando:

appservices pull
2
  1. Crear una package.json en el directorio /functions de su aplicación. Puede hacerlo copiando un archivo package.json existente o ejecutando npm init y siguiendo las instrucciones.

  2. Agregue dependencias ejecutando npm install <dependency-name>.

3
  1. Vaya al directorio raíz de su aplicación:

    cd path/to/MyRealmApp
  2. Inserte la última versión de su aplicación con todas las dependencias en package.json:

    appservices push --include-package-json
  3. Sigue las instrucciones de la CLI para confirmar que deseas incluir las dependencias en tu operación. La CLI comenzará a agregar las dependencias a tu aplicación.

4

Una vez que termina de agregar las dependencias, la CLI le indica si todos los paquetes se agregaron correctamente.

Si algo falla durante la instalación, no se instalará ninguna de las dependencias. Elimine las dependencias que fallan del archivo package.json y vuelva a intentarlo.

1

Habilite las implementaciones automáticas de Github para poder volver a implementar su aplicación cada vez que envíe actualizaciones de configuración a una rama específica en Github.

2

Lleva tu aplicación a tu dispositivo con el comando:

appservices pull
3
  1. Crea un package.json en el directorio /functions de tu aplicación. Puedes hacerlo copiando un archivo package.json existente o ejecutando npm init y siguiendo las instrucciones.

  2. Agregue dependencias ejecutando npm install <dependency-name>.

4

Git Push envía la última versión de tu aplicación con todas las dependencias en package.json a Github con un comando como:

git push origin main
5

La aplicación App Services de GitHub implementa automáticamente la configuración actualizada de la aplicación después de hacer push de la confirmación. Puedes comprobar el estado de la implementación y confirmar que todos los paquetes se añadieron correctamente desde la pantalla Deployment de la Interfaz de usuario Realm.

Si algo falla durante la implementación, no se instalará ninguna de las dependencias. Elimine las dependencias que fallan del archivo package.json y vuelva a intentarlo.

Puedes subir un directorio comprimido de paquetes node_modules a tu aplicación. Los directorios de dependencias comprimidos no pueden superar los 15MB.

1

Para cargar dependencias externas, primero necesita una carpeta local node_modules que contenga al menos un paquete de Node.js. Puede usar el siguiente fragmento de código para instalar localmente la dependencia que desee cargar:

npm install <package name>

Si la carpeta node_modules aún no existe, este comando la crea automáticamente.

Nota

Métodos alternativos de instalación

También puede configurar un package.json y ejecutar el comando npm install para instalar todos los paquetes (y sus dependencias) enumerados en su package.json.

Para obtener más información sobre npm node_modules y, consulte la documentación de npm.

2

Ahora que has descargado todos tus módulos npm, necesitas empaquetarlos en un archivo para poder subirlos a App Services. Crea un archivo que contenga la carpeta node_modules:

tar -czf node_modules.tar.gz node_modules/

Nota

Formatos de fichero soportados

App Services admite los formatos de archivo .tar, .tar.gz, .tgz y .zip.

3

Una vez que haya creado un archivo que contenga sus dependencias, puede cargar su archivo de dependencias mediante la interfaz de usuario de App Services o la CLI de App Services:

  1. Seleccione Functions en el menú de navegación de la izquierda.

  2. Seleccione la pestaña Dependencies.

  3. Haga clic en el botón Upload.

  4. En el selector de archivos, selecciona el node_modules.tar.gz fichero que acabas de crear y haz clic en Abrir. App Services carga automáticamente el fichero, lo cual puede tardar varios minutos dependiendo de la velocidad de tu conexión a Internet y del tamaño de tu fichero de dependencia.

  5. Independientemente de si la operación se realizó correctamente o no, App Services muestra un banner que indica si la operación se realizó correctamente o no. Si se realizó correctamente, la pestaña Dependencies muestra una lista de las dependencias incluidas en el archivo de dependencias. Si los borradores están habilitados, también deberá hacer clic en Review & Deploy para aplicar los cambios. Si los borradores están deshabilitados, el cambio se aplicará en un plazo de 5 a 60 segundos, según el tamaño del archivo de dependencias.

  1. Agrega el fichero node_modules a tu directorio /functions:

    mv node_modules.tar.gz ./myapp/functions
  2. Envía tu aplicación con la opción --include-node-modules:

    appservices push --include-node-modules

Puedes importar módulos integrados y paquetes externos que hayas añadido a tu aplicación y usarlos en tus funciones. Para importar un paquete, llama a require() con el nombre del paquete desde el cuerpo de la función.

Importante

¿Dónde importo módulos?

Los proyectos de Node.js suelen colocar require() las llamadas en el ámbito global de cada archivo, pero App Services no admite este patrón.Debe colocar require() las llamadas de App Services dentro del ámbito de una función.

exports = () => {
const R = require("ramda");
return R.map(x => x*2, [1,2,3]);
}
exports = function(arg){
const cloneDeep = require("lodash/cloneDeep");
var original = { name: "Deep" };
var copy = cloneDeep(original);
copy.name = "John";
console.log(`original: ${original.name}`);
console.log(`copy: ${copy.name}`);
return (original != copy);
};

Volver

Global Modules

En esta página