web-dev-qa-db-fra.com

Les erreurs de déploiement de Firebase commençant par un code de sortie différent de zéro (espace dans le chemin du projet)

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.

19
Faruk

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.

37
Doug Stevenson

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.

15
Spyde

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.

1
Aditya Tandon

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"
    ]
  }
}
1
Aashay karekar

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

Je supprime que sur firebase.json enfin, il a commencé à se déployer à nouveau

0
Clarenz Elon

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

0
Ark Srivastav

Pour moi, le problème était (je présume) car firebase ne parvenait pas à 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

A travaillé: (notez le ./)

{
  "hosting": {
    "predeploy": "./predeploy.sh",
    ...
}
0
Nick Grealy