J'avais des problèmes avec la commande de déploiement de base de feu récemment. Après la commande firebase deploy, tous les autres étaient déployés sauf Firebase (stockage, base de données, etc.). J'ai donc décidé de réinstaller Firebase pour remédier à cette situation, mais après la réinstallation, mon problème est devenu plus grave. Maintenant, aucun d'entre eux n'est déployé avec l'erreur suivante:
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
Après quelques recherches, j’ai vu quelques sujets à ce sujet, des conseils pour changer
$RESOURCE_DIR to %RESOURCE_DIR%
dans les systèmes Windows (j'utilise Windows 10 btw). J'ai donc édité mon fichier firebase.json qui se trouve dans un niveau supérieur de mon dossier de fonctions. comme ça. (Je ne sais pas si c'est le bon fichier que je devrais éditer)
"database": {
"rules": "database.rules.json"
},
"functions": {
"predeploy": [
"npm --prefix %RESOURCE_DIR% run lint"
]
}
}
mais après cette modification, j'ai commencé à recevoir un autre message d'erreur comme celui-ci.
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
Tout conseil est apprécié. Merci d'avance.
L'erreur provient du fait que vous avez un espace quelque part dans le chemin de votre projet ("Google Drive"):
C:\Users\faruk\Google Drive\Android\firebase\1\$RESOURCE_DIR\package.json
Malheureusement, cela confond la ligne de commande npm et cela prend deux arguments séparés par cet espace.
Normalement, je m'attendrais à pouvoir placer des guillemets tout autour pour éviter que l’espace ne soit interprété de cette façon. Alors j'ai essayé ceci:
"predeploy": [
"npm --prefix \"%RESOURCE_DIR%\" run lint"
]
Et cela fonctionne pour moi.
Je ferai un suivi auprès de l'équipe Firebase en interne sur ce problème, ainsi que sur le fait que des modifications doivent être apportées à Windows.
En réalité, dans Windows, firebase.json
contient les éléments suivants par défaut:
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint"
]
Modifiez-le pour:
"predeploy": [
"npm --prefix \"%RESOURCE_DIR%\" run lint"
]
Cela a fonctionné pour moi, espérons que cela fonctionne pour vous.
J'ai eu le même problème sous Windows. Ce que j'ai fait, c’est que j’ai copié tous les fichiers qui se trouvaient dans le dossier functions et que je les ai passés dans le dossier% RESOURCE_DIR% puis j’ai exécuté le déploiement de Firebase, qui a été déployé avec succès.
Ce qui fonctionne pour moi après la modification de $ RESOURCE_DIR en% RESOURCE_DIR% dans firebase.json
{
"functions": {
"predeploy": [
"npm --prefix \"%RESOURCE_DIR%\" run lint",
"npm --prefix \"%RESOURCE_DIR%\" run build"
]
}
}
"predeploy": [ "npm --prefix \" $ RESOURCE_DIR\"run lint" ]
Je supprime que sur firebase.json enfin, il a commencé à se déployer à nouveau
Lorsque vous utilisez du code VS, ouvrez le dossier Firecast (cela vous aidera à ouvrir firebase.json du répertoire des ressources). Dans firebase.json, modifiez le code du fichier comme suit:
{
"functions": {
"predeploy": [
"npm --prefix \"%RESOURCE_DIR%\" run lint",
"npm --prefix \"%RESOURCE_DIR%\" run build"
]
}
}
Pour moi, le problème était (je présume) car firebase
ne parvenait pas à trouver le script.
{
"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
./
){
"hosting": {
"predeploy": "./predeploy.sh",
...
}