Firebase déploie des erreurs à partir d'un code de sortie non nul (espace dans le chemin du projet)

j'ai eu des problèmes avec firebase commande deploy récemment. Après firebase deploy command tous les autres étaient déployés sauf firebase (stockage, base de données, etc) Donc j'ai décidé de réinstaller firebase pour corriger cette situation, mais après réinstaller mon problème est devenu plus grand. Aucun d'entre eux sont déployés avec l'erreur suivante:

i deploying database, functions
Running command: npm --prefix $RESOURCE_DIR run lint
npm ERR! path C:UsersfarukGoogle DriveAndroidfirebase$RESOURCE_DIRpackage.json
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 'C:UsersfarukGoogle DriveAndroidfirebase$RESOURCE_DIRpackage.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:UsersfarukAppDataRoamingnpm-cache_logs18-01-24T18_21_34_878Z-debug.log

Error: functions predeploy error: Command terminated with non-zero exit code4294963238

après un peu de recherche, j'ai vu quelques sujets à ce sujet quels conseils à changer

$RESOURCE_DIR to %RESOURCE_DIR%

dans les systèmes windows (j'utilise windows 10 btw). Donc, j'ai édité mon firebase.json le fichier qui est dans un niveau supérieur de mon dossier fonctions. pareil. (Je ne sais pas si c'est le bon fichier que je dois modifier)

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

mais après cette édition, 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:Usersfaruk.npmrc
or on the command line via: npm <command> --key value
Config info can be viewed via: npm help config

npm@5.6.0 C:Program Filesnodejsnode_modulesnpm

Error: functions predeploy error: Command terminated with non-zero exit code1

tout conseil est apprécié. Merci à l'avance.

15
demandé sur neer17 2018-01-24 21:33:43

4 réponses

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$RESOURCE_DIR\package.json

malheureusement, cela confond la ligne de commande npm, et il prend cela comme deux arguments séparés par cet espace.

normalement, je m'attendrais à pouvoir placer des citations autour de la chose entière pour empêcher l'espace d'être interprété de cette façon. J'ai donc essayé ceci:

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

Et ça marche pour moi.

je vais faites un suivi interne auprès de L'équipe de Firebase sur cette question, ainsi que sur le fait que des changements doivent être apportés pour Windows.

30
répondu Doug Stevenson 2018-01-24 19:34:49

Ce qui se passe réellement est que dans Windows, firebase.json contient ce qui suit par défaut:

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

Modifier:

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

ça a marché pour moi, j'espère que ça va marcher pour toi.

7
répondu Spyde 2018-07-01 10:42:42

J'ai eu le même problème avec Windows. Ce que j'ai fait, j'ai copié tous les fichiers qui étaient dans fonctions et passé à %RESOURCE_DIR% dossier et puis j'exécute La base de feu déployer et il s'est déployé avec succès.

1
répondu Aditya Tandon 2018-07-24 01:12:33

pour moi, le problème était (je présume) parce que firebase impossible de trouver le script.

N'a pas fonctionné:

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

Ne fonctionne: (note ./)

{
  "hosting": {
    "predeploy": "./predeploy.sh",
    ...
}
0
répondu Nick Grealy 2018-03-12 03:25:47