将Node模块的本地修改部署到Firebase的Fire Functions

时间:2017-04-27 08:01:57

标签: node.js firebase google-cloud-functions

我正在为Firebase开发一些云功能,特别是对于我的功能所依赖的其中一个节点模块中的一个问题不起作用。

我已经找到问题的位置以及如何解决问题,问题是,如果我修改了node_modules /文件夹中的源,则该更新不会发送到服务器。 我从package.json中删除了依赖并做了(在本地修改文件之前):

npm install --save pdf2img

但是函数没有更新,错误总是一样的。 是否有可能做我想做或不做的事情?

感谢所有提供帮助的人!

3 个答案:

答案 0 :(得分:1)

感谢Mr.Phoenix提示,解决方案是:

  • 分叉存储库(或者在我的情况下,找到已经有修复的分支)。

  • 删除以前的版本:

  

npm uninstal --save pdf2img

  • 使用以下命令从fork安装新版本:
  

npm install --save git + https://git@github.com/matteocontrini/node-pdf2img

这个特定情况下的问题无法解决,因为图书馆依赖于" gm"以及firebase函数中没有的其他库

答案 1 :(得分:0)

  1. 假设您在protobufjs中的node_modules依赖项中进行了更改。
  2. 将此软件包protobufjs从您的node_modules复制到functions文件夹中。
  3. 将以下内容添加到dependencies"protobufjs": "file:./protobufjs"(假设您将protobufjs文件夹放置在functions文件夹的根目录中)。
  4. 运行:firebase deploy

答案 2 :(得分:0)

如果您已从原始存储库分叉到自己的GitHub存储库,则可以将版本克隆到“ functions”文件夹的根目录中。 然后:

  1. 如果需要从Typescript将包编译为Javascript,请使用yarn(将存在yarn.json文件)或npm(将具有package.json文件)来构建包。

  2. 按照Daniel Danielecki的先前回答建议进行操作,并将以下内容添加到您的依赖项中:“ [您的软件包名称]”:“文件:./ [您的软件包名称]”

  3. 尝试使用“ firebase部署”进行部署。您可能会收到类似es-lint的错误-“ eslint错误-找不到模块'@ [SOME-NAME] / eslint-config'”。这是eslint中的错误,可以在eslint bug处查看。要解决此问题,只需将“ .eslintignore”文件添加到“ functions”文件夹的根目录中,并添加“ [YOUR-PACKAGE-NAME] / *”行即可忽略错误的掉毛错误,从而成功进行部署。< / p>