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.
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
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.
Agregar paquetes por nombre y versión
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.
Añadir 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. |
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.
Empujar las dependencias a los servicios de aplicaciones
Vaya al directorio raíz de su aplicación:
cd path/to/MyRealmApp Push the latest version of your app with all the dependencies in the
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, ninguna de las dependencias se instala. Elimina las dependencias que fallan del archivo package.json e inténtalo de nuevo.
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 node_modules de paquetes a tu aplicación. Los directorios de dependencias comprimidos no pueden superar los 15 MB.
Instalar localmente dependencias externas
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.
Crear un fichero de Dependencias
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.
Subir el fichero 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.
Selecciona 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 Ejecuta tu aplicación con la opción
--include-node-modules:appservices push --include-node-modules
Importar un paquete en una función
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.
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); };