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.