Firebase CLI 部署警告:Node.js 8 运行时已弃用,将于 2020-12-05 停用

Posted

技术标签:

【中文标题】Firebase CLI 部署警告:Node.js 8 运行时已弃用,将于 2020-12-05 停用【英文标题】:Firebase CLI deployment warning: The Node.js 8 runtime is deprecated and will be decommissioned on 2020-12-05 【发布时间】:2020-11-12 17:40:28 【问题描述】:

我正在尝试学习如何将打字稿部署到我的 FCF 上,但它似乎没有像文档和 firecast 的官方视频中那样进行部署。当我尝试部署我的默认代码 helloworld 而不是 typescript 时,它正在部署 node.js 文件,我不明白为什么?下面是一些json文件和ts文件,请看一下生成的文件。

tsconfig.json

  "compilerOptions": 
    "module": "commonjs",
    "noImplicitReturns": true,
    "noUnusedLocals": true,
    "outDir": "lib",
    "sourceMap": true,
    "strict": true,
    "target": "es2017"
  ,
  "compileOnSave": true,
  "include": [
    "src"
  ]

package.json

  "name": "functions",
  "scripts": 
    "lint": "./node_modules/.bin/tslint -p tslint.json",
    "build": "./node_modules/.bin/tsc",
    "serve": "npm run build && firebase emulators:start --only functions",
    "shell": "npm run build && firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  ,
  "engines": 
    "node": "8"
  ,
  "main": "lib/index.js",
  "dependencies": 
    "firebase-admin": "^8.10.0",
    "firebase-functions": "^3.6.0"
  ,
  "devDependencies": 
    "tslint": "^5.12.0",
    "typescript": "^3.2.2",
    "firebase-functions-test": "^0.2.0"
  ,
  "private": true

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) => 
 response.send("Hello from Firebase!");
);

最后是部署代码时的结果:

=== Deploying to 'gym-system-63a51'...

i  deploying functions
Running command: npm --prefix functions run build

> functions@ build C:\Users\FX504GE-EN179T\Desktop\Clustore_App\MapboxTest\TypeScript\functions
> tslint -p tslint.json && tsc

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

> functions@ lint C:\Users\FX504GE-EN179T\Desktop\Clustore_App\MapboxTest\TypeScript\functions
> tslint -p tslint.json

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

> functions@ build C:\Users\FX504GE-EN179T\Desktop\Clustore_App\MapboxTest\TypeScript\functions
> tslint -p tslint.json && tsc

+  functions: Finished running predeploy script.
i  functions: ensuring required API cloudfunctions.googleapis.com is enabled...

!  functions: The Node.js 8 runtime is deprecated and will be decommissioned on 2020-12-05. For more information, see: https://firebase.google.com/support/faq#functions-runtime

+  functions: required API cloudfunctions.googleapis.com is enabled
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (29.86 KB) for uploading
+  functions: functions folder uploaded successfully
i  functions: updating Node.js 8 function helloWorld(us-central1)...
+  functions[helloWorld(us-central1)]: Successful update operation.

+  Deploy complete!

我有预感 package.json 中的引擎是原因?但我不知道我应该用什么号码更新它。谢谢!

【问题讨论】:

请编辑问题以显示代码以及您看到的任何错误消息。只是说它不起作用并不是有用的信息。应该有足够的信息,以便任何人都可以复制相同的东西。 好的,请稍候。我会更新的 @DougStevenson 我更新了问题,请看一下。谢谢! 您是否阅读了部署中的警告消息? "Node.js 8 运行时已弃用,将于 2020-12-05 停用。更多信息请参阅:firebase.google.com/support/faq#functions-runtime" 部署工作得很好。你可以在输出中看到。 【参考方案1】:

node 8 运行时已弃用并将停止使用。按照警告消息中的link 获取更多信息。您需要migrate to node 10 eventually。至少,您需要确保在您的 package.json 中进行了设置:

  "engines": 
    "node": "10"
  ,

【讨论】:

以上是关于Firebase CLI 部署警告:Node.js 8 运行时已弃用,将于 2020-12-05 停用的主要内容,如果未能解决你的问题,请参考以下文章

vue-cli v3 与 node.js firebase 函数,firebase 托管(错误:在函数源目录中找不到 npm 包)

错误 Firebase cli 云功能部署。 npm 错误!函数@ lint 脚本失败

为啥只有在部署到 Firebase 时才会在 Node.js 和 Angular 之间出现 CORS 错误?

在 Firebase 上部署使用 node.js 服务器的应用程序

我想使用 MongoDB 数据库在 firebase 上部署我的 Node.js 应用程序。但我得到的只是 firebase 欢迎页面,而不是我的网站

Firebase 初始化“Node.js 8 已被弃用。” [复制]