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
Essayez de remplacer $ RESOURCE_DIR par% RESOURCE_DIR% dans votre fichier firebase.json
.
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
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"
}
RÉSUMANT
Installez ESLint localement pour ajouter "devDependencies" à package.json. Courir:
`npm install eslint --save-dev`
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`
Ajoutez éventuellement les éléments suivants à package.json:
"scripts": { "lint": "eslint"} or "scripts": { "lint": "eslint.js"}
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
Modifier dans firebase.json de "npm --prefix $RESOURCE_DIR run lint
" à "npm --prefix %RESOURCE_DIR% run lint
"
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.