web-dev-qa-db-fra.com

Erreur de déploiement avec firebase sur npm --prefix $ RESOURCE_DIR run lint

J'ai une nouvelle installation des outils Firebase (après ceci tutoriel ) et j'essaye de télécharger ma première fonction Firebase. Je reçois ce problème avec l'exemple hello-world qu'ils initialisent lorsque vous exécutez firebase init (la seule configuration de la fonctionnalité CLI de fonctions pendant l'init)

Si je remplace $RESOURCE_DIR dans firebase.json par mon dossier de fonctions, cela fonctionne, mais bien sûr, c'est une mauvaise pratique et j'aimerais trouver un remplacement adéquat pour $RESOURCE_DIR qui fonctionne.

PS D:\workspace\firebase-functions> firebase deploy

    === Deploying to 'newagent-5221d'...

i  deploying functions
Running command: npm --prefix $RESOURCE_DIR run lint
npm ERR! path D:\workspace\firebase-functions\$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 'D:\workspace\firebase-functions\$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\dtlut\AppData\Roaming\npm-cache\_logs\2018-01-19T15_57_22_990Z-debug.log

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

Essayez de remplacer $ RESOURCE_DIR par% RESOURCE_DIR% dans votre fichier firebase.json.

113
Kamil Svoboda

vous pouvez simplement créer votre fichier firebase.json comme ceci:

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

ce que je fais est de remplacer $ RESOURCE_DIR par le chemin codé en dur du dossier de fonction itis qui fonctionne bien pour moi

26
Inzamam Malik

Il veut limiter les fonctions de votre cloud, ce qui signifie qu'il va vérifier dans votre code les erreurs évidentes, comme si un langage compilé lançait des erreurs au moment de la compilation.

Ce n'est pas nécessaire, vous pouvez toujours le supprimer en allant dans firebase.json et en mettant à jour functions.predeploy pour être un tableau vide.

  "functions": {
    "predeploy": [],
    "source": "functions" 
  }

Qu'est-ce que "Linting"?

20
Neo

RÉSUMANT

  1. Installez ESLint localement pour ajouter "devDependencies" à package.json. Courir:

     `npm install eslint --save-dev`
    
  2. Solution de contournement pour Windows, comme indiqué ci-dessus. Changer firebase.json:

     `npm --prefix $RESOURCE_DIR run lint` to `npm --prefix %RESOURCE_DIR% run lint`
    
  3. Ajoutez éventuellement les éléments suivants à package.json:

     "scripts": { "lint": "eslint"} or "scripts": { "lint": "eslint.js"}
    
8
Cutoutcow

localisez le fichier firebase.json, puis modifiez ces lignes

"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"

à

"npm --prefix \"%RESOURCE_DIR%\" run lint",
"npm --prefix \"%RESOURCE_DIR%\" run build"

ça va marcher

4
Aishik kirtaniya

Modifier dans firebase.json de "npm --prefix $RESOURCE_DIR run lint" à "npm --prefix %RESOURCE_DIR% run lint"

1
Bhuwan Maharjan

Celui-ci devrait résoudre le problème sans solution de contournement

npm install -g git://github.com/firebase/firebase-tools#master

veuillez réessayer cette installation dans votre dossier de projet, cela devrait résoudre le problème.

0
jaideep_johny