Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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 automatically transpiles dependencies and also supports most built-in Node.js modules.

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

Reemplazar dependencias existentes

Sólo se puede utilizar un método a la vez para especificar los paquetes externos que la aplicación puede utilizar. El método más reciente que utilizaste para especificar las dependencias es la fuente de la verdad y reemplaza 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 del registro de npm a tu aplicación por nombre. Puede agregar una versión específica o usar la última versión.

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

  2. Selecciona 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.

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

Puedes rastrear el estado de la adición de la dependencia en el rastreador de progreso en la parte inferior de la ventana. El rastreador de progreso proporciona un mensaje que te informa si el paquete ha tenido éxito o ha fallado. Los mensajes de error contienen información adicional sobre la razón por la cual 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 un(a) 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. Push the latest version of your app with all the dependencies in the 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, ninguna de las dependencias se instala. Elimina las dependencias que fallan del archivo package.json e inténtalo de nuevo.

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(a) package.json en el directorio /functions de tu aplicación. Puedes hacer esto copiando un archivo package.json existente o ejecutando npm init y siguiendo las indicaciones.

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

4

Haz un push de Git de la versión más reciente de tu aplicación con todas las dependencias en el 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 node_modules de paquetes a tu aplicación. Los directorios de dependencias comprimidos no pueden superar los 15 MB.

1

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

npm install <package name>

Si la carpeta node_modules no existe ya, este comando la crea automáticamente.

Nota

Métodos alternativos de instalación

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

Para aprender más sobre npm y node_modules, consulta la documentación de npm.

2

Ahora que has descargado todos tus módulos de npm, necesitas empaquetarlos en un fichero para poder subirlos a App Services. Cree un fichero 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. Selecciona 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. Ejecuta tu aplicación con la opción --include-node-modules:

    appservices push --include-node-modules

Puede importar módulos de funcionalidad incorporada y paquetes externos que hayas agregado a tu aplicación y luego usarlos en tus funciones. Para importar un paquete, llame a require() con el nombre del paquete desde dentro del 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