17

I've setup a Firebase project to create some basic Firebase Functions.
In the project I'm using TypeScript

Following the Firebase official documentation I created my project.

The last step, firebase deploy --only functions, gave an error with the tsc command.

$ firebase deploy --only functions

=== Deploying to ‘my-project’…

i  deploying functions
Running command: npm --prefix "$RESOURCE_DIR" run lint

> functions@ lint /path/to/functions
> tslint --project tsconfig.json

Running command: npm --prefix "$RESOURCE_DIR" run build

> functions@ build /path/to/functions
> tsc

node_modules/firebase-functions/lib/function-builder.d.ts(60,95): error TS1005: ';' expected.
node_modules/firebase-functions/lib/function-builder.d.ts(60,96): error TS1003: Identifier expected.
node_modules/firebase-functions/lib/function-builder.d.ts(60,116): error TS1005: ';' expected.
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! functions@ build: `tsc`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the functions@ build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /some/path/.npm/_logs/2019-02-03T00_10_30_573Z-debug.log

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

Having trouble? Try firebase deploy --help

It seems that some of the Firebase library code does not pass the tsc compile/transpile step. I'm looking for a way to make this deploy step pass.

I've followed the suggestion given at this GitHub issue, which included:

  • Adding --skipLibCheck to the tsc command
  • Adding skipLibCheck to the project's generated functions/tsconfig.json
  • Adding isolateModules to functions/tsconfig.json
  • Adding ./functions/node_modules/@types to the typeRoots array in the functions/tsconfig.json file.
  • Adding dom to compilerOptions.lib in functions/tsconfig.json

None of the above steps have worked for me.

How can I make my deployment to Firebase succeed?

3
  • this might help stackoverflow.com/a/59941420/4378475 Commented Jan 28, 2020 at 2:38
  • Hey Rick, what did you do to solve this issue? Changing the versions as below didn't work well. Did you manage to solve this ? THANKS!! Commented May 31, 2021 at 8:30
  • A year and a half ago, that did the trick. See the accepted answer, upgrade to the latest typescript version, clear cache and retry, these are the things I would do. Commented May 31, 2021 at 8:56

2 Answers 2

10

Ran into same issue, was able to deploy after upgrading typescript library to 3.3.1 version and do npm install.

In package.json file set "devDependencies": { "tslint": "~5.8.0", "typescript": "~3.3.1" },

Note: you can remove all changes described in your post.

Sign up to request clarification or add additional context in comments.

3 Comments

Thank you, I was using typescript: 2.8.4 and updating to ~3.1.1 did the job.
This answer didn't fix the problem for me. But there were several successful solutions in the GitHub issue the OP mentions. I found the one about adding type roots to the tsconfig.json to be the best: git.io/JeZrh
In my experience TS, FB, Angular, Ionic move so quickly that 7month old issue and answer is very outdated.
7

this works for me : add this line to tsconfig within the functions folder:

"typeRoots": [ "node_modules/@types" ],

This is part of "compilerOptions" block worked for me

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.