Javascript Firebase功能赢得';添加NPM包后无法部署
背景:我最近(试图)将大幸子添加到我的Firebase web应用程序中。Taiko是一个浏览器自动化npm包,就像Puppeter一样。可能相关:它可以工作 问题:现在我的所有功能都无法部署 问题除了解决这个具体问题之外,我更一般的问题是,“我在这个工作流中遗漏了什么?”/“我以后如何避免这个问题?” 错误消息:(粗体显示,突出显示可能相关的内容)Javascript Firebase功能赢得';添加NPM包后无法部署,javascript,node.js,firebase,npm,google-cloud-functions,Javascript,Node.js,Firebase,Npm,Google Cloud Functions,背景:我最近(试图)将大幸子添加到我的Firebase web应用程序中。Taiko是一个浏览器自动化npm包,就像Puppeter一样。可能相关:它可以工作 问题:现在我的所有功能都无法部署 问题除了解决这个具体问题之外,我更一般的问题是,“我在这个工作流中遗漏了什么?”/“我以后如何避免这个问题?” 错误消息:(粗体显示,突出显示可能相关的内容) 构建失败:{“错误”:{“规范代码”:“无效参数”,“错误消息”:“`npm_install`有标准输出:\n/workspace/node_m
- 构建失败:{“错误”:{“规范代码”:“无效参数”,“错误消息”:“`npm_install`有标准输出:\n/workspace/node_modules/fs extra/lib/mkdirs/make dir.js:86\n}捕获{\n^\n\n语法错误:在Object.runinthiscoxt的createScript(vm.js:80:10)处意外标记{\n(vm.js:139:10)\n在Module.\u编译(Module.js:617:28)\n在Object.Module.\u扩展..js(Module.js:664:10)\n在Module.load(Module.js:566:32)\n在tryModuleLoad(Module.js:506:12)\n在Function.Module.\u加载(Module.js:498:3)\n在Module.require(Module.js:597:17)\n在require(内部/Module.js:11:18)\n在对象。(/workspace/node_modules/fs extra/lib/mkdirs/index.js:3:44)\nnpm ERR!代码失效循环\nnpm ERR!错误号1\nnpm ERR!taiko@1.0.7install:`node lib/install.js`\nnpm ERR!退出状态1\nnpm ERR!\nnpm ERR!在运行时失败taiko@1.0.7安装脚本。\nnpmERR!这可能不是npm的问题。上面可能有其他日志输出。\n\nnpm ERR!此运行的完整日志可以为ound in:\nnpm ERR!/builder/home/.npm/\u logs/2020-04-19T14\u 36\u 20\u 217Z-debug.log\n\n错误:`npm\u install`返回代码:1','errorType:“InternalError”,“errorId:“02C3A7B5”}
{
"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
ing Taiko中创建了一个Taiko测试函数require
- 将大幸子添加到
package.json
- 在functions文件夹中运行npm安装
- 收到的信息<代码> npm警告ws@7.2.3需要bufferutil@^4.0.1的对等方,但未安装任何对等方。 npm警告ws@7.2.3需要utf-8-validate@^5.0.2的对等机,但未安装任何对等机。 您必须自己安装对等依赖项。
- 随后,
在npm安装
/functions
index.js
中创建Stripe
函数时遵循的基本过程相同,没有任何问题
编辑:大幸1.07,节点12.16.2,npm 6.9.0,firebase tools cli 8.1.1
感谢来自Github大幸团队的任何见解!: 由于fs额外包,此错误通常间接发生在版本<节点10上。 Firebase云函数默认使用节点8。请尝试设置expermental节点10,如文档中所述 因此,具体的答案是将Firebase project package.json文件中的节点引擎设置为
“10”
对于“我在这个工作流程中缺少的东西”,更一般的答案是
- 在远程环境中运行包时,请确保该环境的运行时与本地开发环境匹配,否则行为可能会有所不同
- 为项目中的包使用适当版本的node,不一定是最新版本