Firebase部署在tsc命令处返回错误

时间:2019-02-03 00:26:03

标签: node.js typescript firebase google-cloud-functions firebase-cli

我已经设置了一个Firebase项目来创建一些基本的Firebase函数。
在项目中,我正在使用TypeScript

Firebase official documentation之后,我创建了我的项目。

最后一步firebase deploy --only functions使用tsc命令出错。

$ 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

似乎某些Firebase库代码未通过tsc编译/传输步骤。 我正在寻找使该部署步骤通过的方法。

我遵循了this GitHub issue给出的建议,其中包括:

  • --skipLibCheck添加到tsc命令
  • skipLibCheck添加到项目的生成的functions/tsconfig.json
  • isolateModules添加到functions/tsconfig.json
  • ./functions/node_modules/@types添加到typeRoots文件中的functions/tsconfig.json数组中。
  • dom中的compilerOptions.lib添加到functions/tsconfig.json

以上所有步骤对我都没有作用。

如何才能成功部署到Firebase?

2 个答案:

答案 0 :(得分:4)

遇到同样的问题,在将Typescript库升级到3.3.1版本并进行npm安装后能够部署。

在package.json文件集中   “ devDependencies”:{     “ tslint”:“〜5.8.0”,     “打字稿”:“〜3.3.1”   }

注意:您可以删除帖子中描述的所有更改。

答案 1 :(得分:2)

这对我有用: 将此行添加到functions文件夹内的tsconfig中:

“ typeRoots”:[   “ node_modules / @ types” ]

这是对我有用的“ compilerOptions”模块的一部分