src / index.ts:1:1-错误TS6133:声明了“函数”,但从未读取其值

时间:2019-09-06 03:17:54

标签: typescript firebase

当尝试在将用于TypeScript项目的空git存储库上遵循Add Firebase to your JavaScript project时,我在运行firebase deploy时遇到以下错误:

> functions@ build /Users/mosofsky/Documents/Developer/abcplan/functions
> tsc

src/index.ts:1:1 - error TS6133: 'functions' is declared but its value is never read.

1 import * as functions from 'firebase-functions';   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Found 1 error.

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!     /Users/mosofsky/.npm/_logs/2019-09-06T03_00_54_557Z-debug.log

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

由于我一直在遵循Google的入门指南,所以我希望一切正常。

6 个答案:

答案 0 :(得分:2)

我发现我可以将有问题的行注释掉,直到编写一些代码为止。

文件位置是来自存储库根目录(不是functions/src/index.ts)的src/index.ts

第一行说

import * as functions from 'firebase-functions';

所以我像这样//加上了前缀:

// import * as functions from 'firebase-functions';

然后我重新运行firebase deploy,然后走得更远(我遇到了另一个错误,该错误不相关,但已由Error: HTTP error: 400, Project 'my_project' is not a Firestore enabled project解决了。)

答案 1 :(得分:2)

根本原因是a)声明了一个变量但未使用它,并且b)TypeScript编译器配置为将未使用的变量标记为错误。

在我看来,这种配置在基本设置中是过大的。也许将来对功能设置的编辑将解决此问题。

正如其他人指出的那样,您的选择是您可以使用变量(即,使其成为“未使用”),或仅在tsconfig.json中更改此行,以便使用未使用的变量不再是“错误”:

$ cat functions/tsconfig.json
{
  "compilerOptions": {
    "module": "commonjs",
    "noImplicitReturns": true,
    "noUnusedLocals": true,    <-- change this to: false
    ...

答案 2 :(得分:2)

我遇到了同样的问题。我的问题是,在部署之前,我没有将更改保存在文件中(取消了helloWorld测试代码的注释)。保存后,它部署良好。

答案 3 :(得分:0)

错误提示您声明了变量但未使用它。您是否已在教程中进一步进行添加以下内容:

// Initialize Firebase
firebase.initializeApp(firebaseConfig);

然后错误将消失。同样,该错误由TypeScript编译器生成,并且说明适用于JavaScript。如果您使用的是JavaScript,就不可能出现这样的错误。

答案 4 :(得分:0)

您可以评论和部署:

// import * as functions from 'firebase-functions'; 

或者您可以取消注释以下代码并进行部署:

 export const helloWorld = functions.https.onRequest((request, response) => {
 response.send("Hello from Firebase!");
 });

答案 5 :(得分:0)

1:将索引文件从.js扩展到.txt

2:确保取消注释这两行代码

  

export const helloWorld = functions.https.onRequest((request,response)=> {    response.send(“ Firebase大家好!”);    });

3:将扩展返回到.js并部署