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.
Agregar un paquete externo
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.
Agregar paquetes por nombre y versión
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.
Agregar información de dependencia
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.
Empujar las dependencias a los servicios de aplicaciones
Vaya al directorio raíz de su aplicación:
cd path/to/MyRealmApp Inserte la última versión de su aplicación con todas las dependencias en
package.json:appservices push --include-package-json 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.
Comprobar el éxito de la operación
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.
Habilitar la implementación automática de Github
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.
Comprobar el éxito de la operación
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.
Cargar un directorio de dependencia
Puedes subir un directorio comprimido de paquetes node_modules a tu aplicación. Los directorios de dependencias comprimidos no pueden superar los 15MB.
Instalar localmente dependencias externas
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.
Crear un archivo de dependencia
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.
Subir el archivo de dependencias
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:
Seleccione Functions en el menú de navegación de la izquierda.
Seleccione la pestaña Dependencies.
Haga clic en el botón Upload.
En el selector de archivos, selecciona el
node_modules.tar.gzfichero 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.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.
Agrega el fichero
node_modulesa tu directorio/functions:mv node_modules.tar.gz ./myapp/functions Envía tu aplicación con la opción
--include-node-modules:appservices push --include-node-modules
Importar un paquete en una función
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.
Importar un módulo completo
exports = () => { const R = require("ramda"); return R.map(x => x*2, [1,2,3]); }
Importar una subcarpeta de módulo
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); };