如何使用私有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
相同的目录