背景:我最近(尝试)将Taiko添加到我的Firebase Web应用程序中。 Taiko是一个浏览器自动化的npm软件包,例如Puppeteer。可能相关:下载Chromium即可正常工作。
问题:现在我的所有功能将无部署。
问题,除了可以解决此特定问题之外,我更笼统的问题是:“我在此工作流程中遗漏了什么?” /“将来如何避免这个问题?”
错误消息:(粗体,突出显示可能相关的内容)
package.json
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"lint": "eslint .",
"serve": "firebase serve --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"engines": {
"node": "8"
},
"dependencies": {
"firebase-admin": "^8.10.0",
"firebase-functions": "^3.3.0",
"node-fetch": "^2.6.0",
"stripe": "^7.14.0",
"taiko": "^1.0.6",
"bufferutil": "^4.0.1",
"utf-8-validate": "^5.0.2"
},
"devDependencies": {
"eslint": "^5.12.0",
"eslint-plugin-promise": "^4.0.1",
"firebase-functions-test": "^0.1.6"
},
"private": true
}
我到目前为止所做的事情:
在index.js
中创建了Taiko测试功能,require
将Taiko命名为Taiko。
将Taiko添加到package.json
在功能文件夹
npm install
收到的消息
npm WARN ws@7.2.3 requires a peer of bufferutil@^4.0.1 but none is installed.
npm WARN ws@7.2.3 requires a peer of utf-8-validate@^5.0.2 but none is installed.
You must install peer dependencies yourself.
以下是npm install
在/functions
这与我在Stripe
中创建index.js
函数所遵循的基本过程相同,没有问题。
编辑:Taiko 1.07,节点12.16.2,npm 6.9.0,firebase-toolscli 8.1.1
任何见解表示赞赏!
答案 0 :(得分:1)
来自Github上的Taiko团队:
由于fs-extra软件包,此错误通常在版本<节点10上间接发生。 Firebase云功能默认情况下使用节点8。请尝试按照文档中所述设置实验节点10。 https://firebase.google.com/docs/functions/manage-functions#set_nodejs_version
因此,具体的答案是在Firebase项目package.json文件中将Node引擎设置为"10"
。
而且,对于“我在此工作流程中缺少什么”的更一般的答案是
在远程环境中运行软件包时,请确保该环境的运行时与您的本地开发环境匹配,否则行为可能会有所不同。
为项目中的程序包使用适当版本的节点,而不一定是最新版本。