running run resource_dir only functions example deploy node.js firebase google-cloud-functions firebase-cli

node.js - run - firebase login



Errores de despliegue de Firebase que comienzan con un código de salida distinto de cero(espacio en la ruta del proyecto) (7)

Estaba teniendo problemas con el comando de despliegue de base de fuego recientemente. Después del comando de despliegue de firebase, todos los demás se estaban implementando excepto firebase (almacenamiento, base de datos, etc.) Así que decidí reinstalar Firebase para solucionar esta situación, pero después de reinstalar mi problema se hizo más grande. Ahora ninguno de ellos está desplegado con el siguiente error:

i deploying database, functions Running command: npm --prefix $RESOURCE_DIR run lint npm ERR! path C:/Users/faruk/Google Drive/Android/firebase/1/$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/faruk/Google Drive/Android/firebase/1/$RESOURCE_DIR/package.json'' npm ERR! enoent This is related to npm not being able to find a file. npm ERR! enoent npm ERR! A complete log of this run can be found in: npm ERR! C:/Users/faruk/AppData/Roaming/npm-cache/_logs/2018-01-24T18_21_34_878Z-debug.log Error: functions predeploy error: Command terminated with non-zero exit code4294963238

Después de un poco de investigación, vi algunos temas sobre esto que consejos para cambiar

$RESOURCE_DIR to %RESOURCE_DIR%

En sistemas windows (estoy usando windows 10 btw). Entonces, edité mi archivo firebase.json que está en un nivel superior de mi carpeta de funciones. Me gusta esto. (No sé si este es el archivo correcto que debería editar)

"database": { "rules": "database.rules.json" }, "functions": { "predeploy": [ "npm --prefix %RESOURCE_DIR% run lint" ] } }

pero después de esta edición, comencé a recibir otro mensaje de error como este.

i deploying database, functions Running command: npm --prefix %RESOURCE_DIR% run lint Usage: npm <command> where <command> is one of: access, adduser, bin, bugs, c, cache, completion, config, ddp, dedupe, deprecate, dist-tag, docs, doctor, edit, explore, get, help, help-search, i, init, install, install-test, it, link, list, ln, login, logout, ls, outdated, owner, pack, ping, prefix, profile, prune, publish, rb, rebuild, repo, restart, root, run, run-script, s, se, search, set, shrinkwrap, star, stars, start, stop, t, team, test, token, tst, un, uninstall, unpublish, unstar, up, update, v, version, view, whoami npm <command> -h quick help on <command> npm -l display full usage info npm help <term> search for help on <term> npm help npm involved overview Specify configs in the ini-formatted file: C:/Users/faruk/.npmrc or on the command line via: npm <command> --key value Config info can be viewed via: npm help config [email protected] C:/Program Files/nodejs/node_modules/npm Error: functions predeploy error: Command terminated with non-zero exit code1

Cualquier consejo es apreciado. Gracias por adelantado.


"despliegue previo": ["npm --prefix /" $ RESOURCE_DIR / "run lint"]

Remuevo eso en firebase.json finalmente, comenzó a desplegarse de nuevo


Al usar el código VS, abra la carpeta de Firecast (esto ayuda a abrir firebase.json del Directorio de recursos) En firebase.json cambie el código del archivo a esto:

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


El error se debe al hecho de que tiene un espacio en algún lugar de la ruta de su proyecto ("Google Drive"):

C:/Users/faruk/Google Drive/Android/firebase/1/$RESOURCE_DIR/package.json

Desafortunadamente, esto confunde la línea de comando npm, y está tomando eso como dos argumentos separados por ese espacio.

Normalmente, espero poder colocar citas alrededor de todo para evitar que el espacio se interprete de esa manera. Así que intenté esto:

"predeploy": [ "npm --prefix /"%RESOURCE_DIR%/" run lint" ]

Y funciona para mi.

Voy a hacer un seguimiento interno del equipo de Firebase sobre este problema, así como el hecho de que se deben realizar cambios para Windows.


Esto es lo que me funcionó después de cambiar $ RESOURCE_DIR a% RESOURCE_DIR% en firebase.json

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


Lo que sucede en realidad es que en Windows, firebase.json contiene lo siguiente de manera predeterminada:

"predeploy": [ "npm --prefix /"$RESOURCE_DIR/" run lint" ]

Modificarlo a:

"predeploy": [ "npm --prefix /"%RESOURCE_DIR%/" run lint" ]

Funcionó para mí, espero que funcione para ti.


Para mí, el problema fue (supongo) porque firebase no pudo encontrar el script.

No funciono

{ "hosting": { "predeploy": "predeploy.sh", ... }

Running command: predeploy.sh events.js:160 throw er; // Unhandled ''error'' event ^ Error: spawn predeploy.sh ENOENT at exports._errnoException (util.js:1020:11) at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32) at onErrorNT (internal/child_process.js:367:16) at _combinedTickCallback (internal/process/next_tick.js:80:11) at process._tickCallback (internal/process/next_tick.js:104:9) at Module.runMain (module.js:606:11) at run (bootstrap_node.js:389:7) at startup (bootstrap_node.js:149:9) at bootstrap_node.js:504:3 Error: hosting predeploy error: Command terminated with non-zero exit code1

Funcionó: (note el ./ )

{ "hosting": { "predeploy": "./predeploy.sh", ... }


Tuve el mismo problema en Windows. Lo que hice fue copiar todos los archivos que estaban en la carpeta de funciones y lo pasé a la carpeta % RESOURCE_DIR% y luego ejecuté la implementación de Firebase y se implementó correctamente.