Especifica dependencias en Node.js

Una función puede usar módulos de Node.js externos y datos locales. Las dependencias en Node.js se administran con npm y se expresan en un archivo de metadatos llamado package.json. Por lo general, los entornos de ejecución de Node.js para Cloud Functions admiten la instalación mediante npm o yarn.

Si deseas especificar una dependencia para tu función, agrégala al archivo package.json.

En este ejemplo, se incluye una dependencia en el archivo package.json:

{
  "dependencies": {
    "escape-html": "^1.0.3"
  }
}

Luego, la dependencia se importa en la función:

const escapeHtml = require('escape-html');

/**
 * HTTP Cloud Function.
 *
 * @param {Object} req Cloud Function request context.
 *                     More info: https://expressjs.com/en/api.html#req
 * @param {Object} res Cloud Function response context.
 *                     More info: https://expressjs.com/en/api.html#res
 */
exports.helloHttp = (req, res) => {
  res.send(`Hello ${escapeHtml(req.query.name || req.body.name || 'World')}!`);
};

Instala dependencias durante la implementación

Cuando implementas tu función, Cloud Functions instala las dependencias declaradas en el archivo package.json con el comando npm install:

npm install --production

En el entorno de ejecución de Node.js 8 y versiones posteriores, si existe un archivo yarn.lock, Cloud Functions usa el comando yarn install en su lugar:

yarn install --production

Ejecuta pasos de compilación personalizados durante la implementación

Durante la implementación, antes de iniciar la aplicación, puedes realizar un paso de compilación personalizado si agregas una secuencia de comandos gcp-build al archivo package.json.

Cuando se ejecuta esta secuencia de comandos, las dependencias en los campos dependencies y devDependencies del archivo package.json están disponibles. Después de ejecutar este paso, Cloud Functions quita y vuelve a generar la carpeta node_modules mediante la instalación de dependencias de producción declaradas en el campo dependencies del archivo package.json.

Si no hay una secuencia de comandos gcp-build en package.json, Cloud Functions solo instala dependencias de producción.

Usa paquetes del sistema

El entorno de ejecución de Node.js también incluye una cantidad de paquetes del sistema. Si la función usa una dependencia que requiere un paquete que no aparece en la lista, puedes solicitar un paquete.

Incluye módulos locales de Node.js como parte de tu paquete de implementación

También puedes incluir módulos locales de Node.js como parte de tu función. Para ello, declara el módulo en package.json mediante el prefijo file:. En el siguiente ejemplo, mymodule hace referencia al nombre del módulo y mymoduledir es el directorio que contiene el módulo:

{
  "dependencies": {
    "mymodule": "file:mymoduledir"
  }
}

El código de este módulo local no debe estar en la carpeta node_modules. Puedes guardarlo en la raíz del directorio de la función.

Usa npm para instalar módulos de Node.js de forma local

La manera más simple de instalar un módulo de Node.js de forma local es usar el comando npm install en la carpeta que contiene la función de Cloud Functions. Por ejemplo, el siguiente comando agrega el módulo uuid:

npm install uuid

Esto combina dos pasos:

  1. Marca la última versión del módulo como una dependencia en tu archivo package.json. Esto es muy importante: Cloud Functions solo instala módulos que están declarados en tu archivo package.json.
  2. Descarga el módulo en tu directorio node_modules. Esto te permite usar el módulo cuando realizas desarrollos locales.

Si no tienes npm instalado en tu máquina, descárgalo.

Carga módulos Node.js

Utiliza la función require() de Node.js para cargar cualquier módulo de Node.js que instales. También puedes usar la función require() para importar archivos locales que implementes junto con tu función.

Usa módulos privados

Si deseas utilizar un módulo de npm privado, debes proporcionar credenciales (token de autenticación) para el registro de npm en un archivo .npmrc ubicado en el directorio de la función. En la documentación de npm, se explica cómo crear tus propios tokens de acceso personalizados de solo lectura. No recomendamos el uso del archivo .npmrc creado en el directorio principal dado que contiene un token de lectura y escritura. No se necesitan permisos de escritura para el proceso de implementación. Además, podrían poner en riesgo la seguridad.

No incluyas el archivo .npmrc si no usas repositorios privados, ya que puede aumentar el tiempo de implementación de las funciones.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud Functions