Firebase 部署在 tsc 命令返回错误
Posted
技术标签:
【中文标题】Firebase 部署在 tsc 命令返回错误【英文标题】:Firebase deploy returns error at tsc command 【发布时间】:2019-06-27 04:10:35 【问题描述】:我设置了一个 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
添加到functions/tsconfig.json
文件中的typeRoots
数组中。
在functions/tsconfig.json
中添加dom
到compilerOptions.lib
以上步骤都不适合我。
如何才能成功部署到 Firebase?
【问题讨论】:
这可能有助于***.com/a/59941420/4378475 嗨 Rick,你是怎么解决这个问题的?如下更改版本效果不佳。你设法解决了这个问题吗?谢谢!! 一年半前,成功了。查看接受的答案,升级到最新的 typescript 版本,清除缓存并重试,这些都是我会做的事情。 【参考方案1】:遇到同样的问题,将 typescript 库升级到 3.3.1 版本并执行 npm install 后能够部署。
在 package.json 文件集中 “开发依赖”: "tslint": "~5.8.0", “打字稿”:“~3.3.1” ,
注意:您可以删除帖子中描述的所有更改。
【讨论】:
谢谢,我使用typescript: 2.8.4
并更新到~3.1.1
完成了这项工作。
这个答案并没有为我解决问题。但是OP提到的GitHub问题中有几个成功的解决方案。我发现关于向 tsconfig.json 添加类型根的方法是最好的:git.io/JeZrh
根据我的经验,TS、FB、Angular、Ionic 的变化如此之快,以至于 7 个月前的问题和答案已经过时了。【参考方案2】:
这对我有用: 将此行添加到函数文件夹中的 tsconfig:
"typeRoots": [ “node_modules/@types” ],
这是为我工作的“compilerOptions”块的一部分
【讨论】:
【参考方案3】:试试这个
在浪费了很多时间之后,当我取消注释index.ts
中的代码时它起作用了
import * as functions from "firebase-functions";
// // Start writing Firebase Functions
// // https://firebase.google.com/docs/functions/typescript
//
// export const helloWorld = functions.https.onRequest((request, response) =>
// functions.logger.info("Hello logs!", structuredData: true);
// response.send("Hello from Firebase!");
// );
【讨论】:
以上是关于Firebase 部署在 tsc 命令返回错误的主要内容,如果未能解决你的问题,请参考以下文章
尝试在从外部项目(上一级)导入类型时构建 Firebase 函数项目。 `tsc` 编译后丢失文件夹结构