Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase功能赢得';添加NPM包后无法部署_Javascript_Node.js_Firebase_Npm_Google Cloud Functions - Fatal编程技术网

Javascript Firebase功能赢得';添加NPM包后无法部署

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

背景:我最近(试图)将大幸子添加到我的Firebase web应用程序中。Taiko是一个浏览器自动化npm包,就像Puppeter一样。可能相关:它可以工作

问题:现在我的所有功能都无法部署

问题除了解决这个具体问题之外,我更一般的问题是,“我在这个工作流中遗漏了什么?”/“我以后如何避免这个问题?”

错误消息:(粗体显示,突出显示可能相关的内容)

  • 构建失败:{“错误”:{“规范代码”:“无效参数”,“错误消息”:“`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”}
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
    require
    ing Taiko中创建了一个Taiko测试函数

  • 将大幸子添加到
    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,不一定是最新版本