Firebase-tools: firebase 部署功能出错

创建于 2017-05-31  ·  21评论  ·  资料来源: firebase/firebase-tools

你好,
当我尝试将函数部署到我的 firebase 项目时出现此错误,但我无法解决此问题
火力版本:3.9.0

[调试] 类型错误:无法读取未定义的属性“pipesCount”
在 module.exports.Readable.pipe (_stream_readable.js:545:16)
在 module.exports.ZipArchiveOutputStream._smartStream (/usr/local/lib/node_modules/firebase-tools/node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js:171:11)
在 module.exports.ZipArchiveOutputStream._appendStream (/usr/local/lib/node_modules/firebase-tools/node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js:94:20)
在 module.exports.ArchiveOutputStream.entry (/usr/local/lib/node_modules/firebase-tools/node_modules/compress-commons/lib/archivers/archive-output-stream.js:89:10)
在 module.exports.ZipStream.entry (/usr/local/lib/node_modules/firebase-tools/node_modules/zip-stream/lib/zip-stream.js:105:49)
在 module.exports.Zip.append (/usr/local/lib/node_modules/firebase-tools/node_modules/archiver/lib/plugins/zip.js:30:15)
在 module.exports.Archiver._moduleAppend (/usr/local/lib/node_modules/firebase-tools/node_modules/archiver/lib/core.js:123:16)
在 module.exports.Archiver._onQueueTask (/usr/local/lib/node_modules/firebase-tools/node_modules/archiver/lib/core.js:246:8)
在 /usr/local/lib/node_modules/firebase-tools/node_modules/archiver/node_modules/async/lib/async.js:945:13
在 Immediate.process [as _onImmediate] (/usr/local/lib/node_modules/firebase-tools/node_modules/archiver/node_modules/async/lib/async.js:913:25)
[错误]
[错误] 错误:发生意外错误。

最有用的评论

Node v8.1.0 刚刚发布,如果你升级你的节点版本,那么部署将再次工作。 不幸的是,我们无法让 firebase-tools 与 v8.0.0 一起使用。

nvm install 8.1.0
nvm use 8.1.0
npm install -g firebase-tools
firebase deploy --only functions

所有21条评论

您使用的是哪个版本的 Node.js?

在周三,2017年5月31日,上午05点28个Laguses [email protected]写道:

你好,
当我尝试将函数部署到我的 firebase 项目时出现此错误,并且
我无法解决这个问题
火力版本:3.9.0

[调试] 类型错误:无法读取未定义的属性“pipesCount”
在 module.exports.Readable.pipe (_stream_readable.js:545:16)
在 module.exports.ZipArchiveOutputStream._smartStream
(/usr/local/lib/node_modules/firebase-tools/node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js:171:11)
在 module.exports.ZipArchiveOutputStream._appendStream
(/usr/local/lib/node_modules/firebase-tools/node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js:94:20)
在 module.exports.ArchiveOutputStream.entry
(/usr/local/lib/node_modules/firebase-tools/node_modules/compress-commons/lib/archivers/archive-output-stream.js:89:10)
在 module.exports.ZipStream.entry
(/usr/local/lib/node_modules/firebase-tools/node_modules/zip-stream/lib/zip-stream.js:105:49)
在 module.exports.Zip.append
(/usr/local/lib/node_modules/firebase-tools/node_modules/archiver/lib/plugins/zip.js:30:15)
在 module.exports.Archiver._moduleAppend
(/usr/local/lib/node_modules/firebase-tools/node_modules/archiver/lib/core.js:123:16)
在 module.exports.Archiver._onQueueTask
(/usr/local/lib/node_modules/firebase-tools/node_modules/archiver/lib/core.js:246:8)

/usr/local/lib/node_modules/firebase-tools/node_modules/archiver/node_modules/async/lib/async.js:945:13
在 Immediate.process [as _onImmediate]
(/usr/local/lib/node_modules/firebase-tools/node_modules/archiver/node_modules/async/lib/async.js:913:25)
[错误]
[错误] 错误:发生意外错误。


您收到此消息是因为您订阅了此线程。
直接回复本邮件,在GitHub上查看
https://github.com/firebase/firebase-tools/issues/356 ,或静音
线
https://github.com/notifications/unsubscribe-auth/AAAD_voVD-nm4r_ZHoU5cToJFNMXgNuGks5r_V0HgaJpZM4Nrkm-
.

最新版 Node.js ver:8.0.0

我在 Slack 的 NodeJS 8 上看到了另外两个关于这个问题的报告。

@laurenzlong让我们把解决这个问题作为首要任务。

似乎是我们的依赖项之一的错误: https :

+1 表示遇到此错误。 也在 node.js 版本:8.0.0 上。

+1 表示遇到此错误。 也在 node.js 版本:8.0.0 上。

我将 node.js 降级到ver:6.10.3 ,现在它可以正常工作了,没有任何错误。

尝试在 Node 版本 8.0.0 上部署时遇到相同的错误,并且 firebase 部署因意外错误而终止。:

[调试] 类型错误:无法读取未定义的属性“pipesCount”
在 module.exports.Readable.pipe (_stream_readable.js:545:16)
在 module.exports.ZipArchiveOutputStream._smartStream (/usr/local/lib/node_modules/firebase-tools/node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js:171:11)
在 module.exports.ZipArchiveOutputStream._appendStream (/usr/local/lib/node_modules/firebase-tools/node_modules/compress-commons/lib/archivers/zip/zip-archive-output-stream.js:94:20)
在 module.exports.ArchiveOutputStream.entry (/usr/local/lib/node_modules/firebase-tools/node_modules/compress-commons/lib/archivers/archive-output-stream.js:89:10)
在 module.exports.ZipStream.entry (/usr/local/lib/node_modules/firebase-tools/node_modules/zip-stream/lib/zip-stream.js:105:49)
在 module.exports.Zip.append (/usr/local/lib/node_modules/firebase-tools/node_modules/archiver/lib/plugins/zip.js:30:15)
在 module.exports.Archiver._moduleAppend (/usr/local/lib/node_modules/firebase-tools/node_modules/archiver/lib/core.js:123:16)
在 module.exports.Archiver._onQueueTask (/usr/local/lib/node_modules/firebase-tools/node_modules/archiver/lib/core.js:246:8)
在 /usr/local/lib/node_modules/firebase-tools/node_modules/archiver/node_modules/async/lib/async.js:945:13
在 Immediate.process [as _onImmediate] (/usr/local/lib/node_modules/firebase-tools/node_modules/archiver/node_modules/async/lib/async.js:913:25)
[错误]
[错误] 错误:发生意外错误。

我很欣赏这方面的明显活动/回应,我遇到了这个错误。

只是提醒那些功能并不重要的人,即对于主要由 Firebase 托管的网站 - 您可以暂时删除它们 - 我已经能够部署这样做。

我之前也遇到过这个错误,AFAIK 现在唯一的解决方法是将 Node.js 从 8.0 降级到 7.10。

从我收集的一些调试信息来看,在生成 zip 文件(这里)时,问题似乎出现在prepareFunctionsUpload.js 中,所以罪魁祸首是存档NPM 包或其依赖项之一。

如果我能提供更多信息,请告诉我。

编辑:cc @laurenzlong @mbleigh
编辑 2:哎呀,刚刚注意到劳伦已经想到了这一点。 别介意我。

我们正在等待存档程序包进行修复(暂时)。 他们是
在 Lauren 上面链接的问题中讨论它。 修复的唯一方法
暂时是降级节点。

在星期五,2017年6月2日,上午07时03分何塞普Sayol [email protected]写道:

我之前也遇到过这个错误,AFAIK 是唯一正确的解决方法
现在正在将 Node.js 从 8.0 降级到 7.10。

从我收集的一些调试信息来看,问题似乎出现了
在生成 zip 文件时在prepareFunctionsUpload.js 中(这里
https://github.com/firebase/firebase-tools/blob/59b61d13c8c4a8478aef168dff2691c58ab234da/lib/prepareFunctionsUpload.js#L80 ),
所以罪魁祸首要么是归档NPM 包,要么是它的一个
依赖关系。

如果我能提供更多信息,请告诉我。


您收到此消息是因为您发表了评论。

直接回复本邮件,在GitHub上查看
https://github.com/firebase/firebase-tools/issues/356#issuecomment-305797280
或静音线程
https://github.com/notifications/unsubscribe-auth/AAAD_pQ5NOKxHepQcyQH5WxVNNlO-lnLks5sABY6gaJpZM4Nrkm-
.

@mbleigh我们没有在我们的函数项目中定义节点版本,也没有看到示例项目这样做。 是在 package.json 中将 node 定义为依赖项还是 package.json 中的“engines”参数那么简单?

@ahaverty我觉得我可以为你回答这个问题。 Node 是全局安装的,所以它不会在你的 package.json 中。 您可以使用 nvm(节点版本管理器)来切换您的节点版本。 http://michael-kuehnel.de/node.js/2015/09/08/using-vm-to-switch-node-versions.html

我懂了! 所以这只是部署过程中的本地问题? (无论部署者如何 https://cloud.google.com/functions/docs/writing/ ,firebase 函数似乎都运行 Node 6.9.1)
谢谢@AlexChaseJones

正确的。

在星期五,2017年6月2日,8:27阿兰·哈弗蒂[email protected]写道:

我懂了! 所以这只是部署过程中的本地问题? (看起来像
无论部署者如何,firebase 函数都运行 Node 6.9.1
https://cloud.google.com/functions/docs/writing/ )
谢谢@AlexChaseJones https://github.com/alexchasejones


你收到这个是因为你被提到了。

直接回复本邮件,在GitHub上查看
https://github.com/firebase/firebase-tools/issues/356#issuecomment-305820945
或静音线程
https://github.com/notifications/unsubscribe-auth/AAAD_la24E0U4QFWi9hjNOWm7SigOtPMks5sACnmgaJpZM4Nrkm-
.

确认,降级工作。

像我这样正在做 Firebase Codelab 教程的 n00bs 的说明:

nvm install 7.10
nvm use 7.10.0
npm install -g firebase-tools
firebase deploy --only functions

目前正在等待节点补丁: https :

Node v8.1.0 刚刚发布,如果你升级你的节点版本,那么部署将再次工作。 不幸的是,我们无法让 firebase-tools 与 v8.0.0 一起使用。

nvm install 8.1.0
nvm use 8.1.0
npm install -g firebase-tools
firebase deploy --only functions

刚刚帮助
firebase deploy --only functions

您可以使用 babel 和可选的 webpack 从 transpile +ES8 到 firebase 当前使用的 Node 6。

此页面是否有帮助?
0 / 5 - 0 等级