'FIrebase deploy error: Cannot find module 'firebase-admin'
I recently started getting the error below when trying to deploy to Firebase (after having done so successfully in the past). I'm not sure what might have changed for this to start occurring. If I run firebase serve to serve on the localhost, everything works fine. My package.json and requires from index.js are also below.
i deploying functions, hosting
i functions: ensuring necessary APIs are enabled...
i runtimeconfig: ensuring necessary APIs are enabled...
+ runtimeconfig: all necessary APIs are enabled
+ functions: all necessary APIs are enabled
i functions: preparing functions directory for uploading...
i functions: packaged functions (46.02 KB) for uploading
+ functions: functions folder uploaded successfully
i hosting: preparing public directory for upload...
! Warning: Public directory does not contain index.html
+ hosting: 9 files uploaded successfully
i starting release process (may take several minutes)...
i functions: updating function app...
! functions[app]: Deploy Error: Function load error: Code in file index.js can't be loaded.
Did you list all required modules in the package.json dependencies?
Detailed stack trace: Error: Cannot find module 'firebase-admin'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/user_code/node_modules/firebase-functions/lib/apps.j
s:25:16)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
Functions deploy had errors. To continue deploying other features (such as datab
ase), run:
firebase deploy --except functions
Error: Functions did not deploy properly.
package.json:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"dependencies": {
"@google-cloud/vision": "^0.12.0",
"async": "^2.5.0",
"consolidate": "^0.14.5",
"express": "^4.15.4",
"firebase-admin": "^5.4.0",
"firebase-functions": "^0.5.7",
"handlebars": "^4.0.10",
"jquery": "^3.2.1",
"js-levenshtein": "^1.1.3",
"json-query": "^2.2.2"
},
"private": true
}
From index.js:
const functions = require('firebase-functions');
const firebase = require('firebase-admin');
const express = require('express');
const engines = require('consolidate');
const Vision = require('@google-cloud/vision');
const levenshtein = require('js-levenshtein');
const restName = require('./restName');
const parser = require('./parser');
const jsonQuery = require('json-query')
const firebaseApp = firebase.initializeApp(
functions.config().firebase
);
Solution 1:[1]
They have an active service disruption. Follow this for a workaround: https://status.firebase.google.com/incident/Functions/17024
Run the following commands inside the functions repository:
npm install --save-exact [email protected] npm install --save-exact [email protected]
Then try deploying functions again:
firebase deploy --only functions
If npm doesn't work, you can try yarn which worked for us:
yarn add [email protected] --exact yarn add [email protected] --exact
Solution 2:[2]
So the issue is that package.json inside Functions folder is different from package.json in your project directory. yes, you have 2 of this file!
So if you want to deploy, (deploy Functions), run npm install express or install other dependencies inside Function folder and you will be able to deploy with no error.
Solution 3:[3]
run the following command
npm i firebase-admin
Solution 4:[4]
Update file package.json in folder functions and look at dependencies remove sign ~ from firebase-admin and ^ from firebase-functions it should be like:
"dependencies": {
"firebase-admin": "5.4.0",
"firebase-functions": "0.7.0"
}
in command line type
npm install
and then try to deploy again.
Solution 5:[5]
I went to the functions directory and ran yarn
(or npm install
if you are old-school). Then went back to my project directory and ran firebase deploy
again.
Solution 6:[6]
I also got same error. i fix that error from installing different version in nodejs. I uninstall my new version and i install Node v7.8.0. then it works fine :)
Solution 7:[7]
Try installing: npm i -g [email protected]
This solved my issue.
Solution 8:[8]
If using docker, ensure your local version of nodejs is the same as the one you are using on the docker file.
For example, if I am using node v16.14.0, (find out by typing this in your terminal) node -v
, then sample docker file should be :
FROM node:16.14.0-alpine
ENV NODE_ENV=production
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
CMD [ "npm", "start" ]
Solution 9:[9]
The things I did to fix this
1.) Make sure I was in the proper directory's package.json
2.) rm -rf node-modules
3.) npm i (missing module)
4.) Made the missing dependencies were NOT in devDependencies
but rather in dependencies
in the package.json, nothing in devDependencies
gets deployed
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | |
Solution 2 | Soley |
Solution 3 | Nishikanta Parida |
Solution 4 | |
Solution 5 | Rory |
Solution 6 | chashikajw |
Solution 7 | Ilir Hushi |
Solution 8 | Manjurul Khan |
Solution 9 | Jason |