tsc 命令中的 Firebase 部署 returns 错误
Firebase deploy returns error at tsc command
我已经设置了一个 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
compile/transpile 这一步。
我正在寻找使此部署步骤通过的方法。
我已遵循 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
None 以上步骤对我有用。
如何才能成功部署到 Firebase?
运行 进入同样的问题,在将 typescript 库升级到 3.3.1 版本并执行 npm install 后能够部署。
在package.json文件集中
"devDependencies":{
"tslint": "~5.8.0",
"typescript": "~3.3.1"
},
注意:您可以删除 post 中描述的所有更改。
这对我有用:
将此行添加到函数文件夹中的 tsconfig:
"typeRoots": [
"node_modules/@types"
],
这是为我工作的"compilerOptions"块的一部分
试试这个
在浪费了很多时间之后,当我取消注释 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 项目来创建一些基本的 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
compile/transpile 这一步。
我正在寻找使此部署步骤通过的方法。
我已遵循 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
None 以上步骤对我有用。
如何才能成功部署到 Firebase?
运行 进入同样的问题,在将 typescript 库升级到 3.3.1 版本并执行 npm install 后能够部署。
在package.json文件集中 "devDependencies":{ "tslint": "~5.8.0", "typescript": "~3.3.1" },
注意:您可以删除 post 中描述的所有更改。
这对我有用: 将此行添加到函数文件夹中的 tsconfig:
"typeRoots": [ "node_modules/@types" ],
这是为我工作的"compilerOptions"块的一部分
试试这个
在浪费了很多时间之后,当我取消注释 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!");
// });