如何使用私有NPM包与云function?

我正在尝试将应用切换到Firebase,并将后端传输到Firebase云端function。

此应用程序正在使用私有包( @org/name )作为依赖项。

我试过不同的解决scheme,但似乎没有工作:

  • 传递一个NPM_TOKEN env:不可能,因为Firebase限制为小写configuration
  • npm install模块npm install在函数目录中
  • 使用YARN和NPM授权令牌在函数目录中创build一个.npmrc文件

它始终拒绝部署:

Deploy Error: Build failed: Module @org/name not found in npm registry

Firebase是否支持私人套餐?

如果你想包含那些不能通过npm公开的软件包,你必须自己打包并将它们包含在函数文件夹中。 整个function文件夹在部署时会被上传,所以你应该能够像在本地一样需要一些东西。

目前没有方便的方法。

在我看来,GCF不使用npm客户端从npmregistry获取,而是直接获取它。 这可以防止使用标准的.npmrc文件或npm客户端知道的任何其他方法。

您必须在本地打包并安装您的软件包,并将其提交给源代码:

 $ npm pack @org/name $ npm install --save tarball-output.tgz 

这会将本地tarball添加到您的package.json并且Google云端函数将知道使用它。

我真的希望他们能够从项目根path读取.npmrc ,或者我们可以将它们作为envvariables传递给TOKEN。

有一个公开的问题: https : //issuetracker.google.com/issues/36665861

我也有同样的问题,但后来我意识到我忘了添加依赖到package.json文件,它应该是在你的index.js相同的目录