Cloud Functions despliega error durante la pelusa en Windows: "enoent ENOENT: no existe tal archivo o directorio"




firebase google-cloud-functions (8)

Siga la guía de inicio de la función firebase y obtenga un error aparentemente simple una vez que intente implementar con:

firebase deploy --only functions

i  deploying functions
Running command: npm --prefix $RESOURCE_DIR run lint
npm ERR! path C:\Users\Beat\leginformant\$RESOURCE_DIR\package.json
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 
'C:\Users\Beat\leginformant\$RESOURCE_DIR\package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

El archivo package.json existe tal como lo muestra el tutorial en mi proyecto / funciones / package.json. Intenté cambiar o imprimir RESOURCE_DIR env sin éxito. Suponiendo que estaría dentro del entorno del shell NPM.

versión npm: 5.6.0

versión de nodo: 8.9.0


Cuando se ejecuta

firebase init functions

Yo uso esta configuracion

? What language would you like to use to write Cloud Functions? JavaScript
//TypeScript doesn't work
? Do you want to use ESLint to catch probable bugs and enforce style? Yes
//If you don't you will get a missing file lint
? File functions/package.json already exists. Overwrite? Yes
? Do you want to install dependencies with npm now? Yes
//Why not

Entonces si usa windows

Reemplace $ RESOURCE_DIR por% RESOURCE_DIR% en firebase.json


Para ubuntu necesita cambiar firebase.json a siguiente, observe $ antes de RESOURCE_DIR

{
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

para Windows 10 necesita cambiar firebase.json n a continuación, observe % después y antes de RESOURCE_DIR

{
  "functions": {
    "predeploy": [
      "npm --prefix \"%RESOURCE_DIR%\" run lint",
      "npm --prefix \"%RESOURCE_DIR%\" run build"
    ]
  }
}

Cambia lo siguiente:

npm --prefix \"$RESOURCE_DIR\" run lint

a

npm --prefix \"%RESOURCE_DIR%\" run lint

en el archivo firebase.json en la estructura principal

{
  "functions": {
    "predeploy": [
      "npm --prefix \"%RESOURCE_DIR%\" run lint"
    ],
    "source": "functions"
  }
}

En Windows, mientras se inicializa el proyecto firebase en CLI usando firebase init , en el archivo firebase.json , cambie el código a las siguientes { "functions": { "predeploy": [ "npm --prefix \"%RESOURCE_DIR%\" run lint" ], "source": "functions" } } Después de este cambio, intente firebase deploy --only functions comando de firebase deploy --only functions .


Puede solucionar esto accediendo a su archivo firebase.json y eliminar esta línea que contiene RESOURCE_DIR .


Tienes que cambiar el archivo firebase.json como se muestra aquí

"npm --prefix functions run lint"
"npm --prefix functions run build"

Este es un problema conocido con Firebase CLI 3.17.0 a través de al menos 3.17.3, pero solo en Windows. Puede arreglar esto en su máquina editando firebase.json en la raíz de su proyecto y reemplazando $RESOURCE_DIR con %RESOURCE_DIR% en los comandos npm que ve allí. La primera es la forma de sintaxis de Unix para usar una variable de entorno, mientras que la segunda es la sintaxis del shell de comandos de Windows. Como está utilizando Windows, debe usar la sintaxis de Windows.

El equipo está buscando formas de evitar tener que hacer cambios en los archivos de configuración que usa, ya que no es realmente conveniente para los equipos que trabajan en toda la plataforma seguir cambiando el mismo archivo de un lado a otro.

EDITAR: Este problema debe solucionarse con proyectos creados con CLI versión 3.17.5.


Como extra haciendo npm --prefix% RESOURCE_DIR% ejecutar pelusa como dijo @Deji James, me hizo progresar pero aún no funcionó.

Como sugerencia, encontré este https://github.com/firebase/firebase-tools/issues/610

y @merlinnot dice aquí Hola chicos, probablemente todos tengan algo en su despliegue previo en firebase.json, ¿no? Simplemente elimine lo que tiene allí por ahora si no es tan importante.

trabajó para mi. PD. Antes de decidir eliminar, he hecho todas las cosas de reinstalación, desinstalar cosas. Solo esto se trabaja.





firebase-cli