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




firebase google-cloud-functions (6)

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


Además de las otras sugerencias, si cambia el comando preflight / predeploy de:

"npm --prefix \"$RESOURCE_DIR\" run lint", OR
"npm --prefix \"%RESOURCE_DIR%\" run lint"

a

"npm --prefix ./functions run lint"

El problema parece solucionarse. Esto también lo resuelve tanto para Windows como para Linux.

Para ver más detalles, consulte esta respuesta (y un hilo adicional): https://github.com/firebase/firebase-tools/issues/610#issuecomment-360147507


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"
  }
}

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


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 .


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"
    ]
  }
}

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





firebase-cli