作者:乖扬123_829 | 来源:互联网 | 2023-02-08 14:35
我正在尝试将应用程序切换到Firebase并将后端转移到Firebase云功能.
此应用程序使用私有package(@org/name
)作为依赖项.
我尝试过不同的解决方案,但似乎都没有效果:
通过环境NPM_TOKEN
:由于Firebase限制为小写配置,因此无法实现
npm install
函数目录中的模块
.npmrc
使用YARN和NPM身份验证令牌在函数目录中创建一个文件
它始终拒绝部署:
Deploy Error: Build failed: Module @org/name not found in npm registry
Firebase是否支持私有包?
1> 小智..:
Google Cloud Functions现在支持私有NPM包.
为了使用私有npm模块,您必须在位于函数目录中的.npmrc文件中为npm注册表提供凭据(auth令牌).使用npm login命令登录npm时,只需复制在主目录中创建的.npmrc文件即可.
如果您不使用私有存储库,请不要包含.npmrc文件,因为这可能会增加函数的部署时间.
资料来源:https://cloud.google.com/functions/docs/writing/dependencies#using_private_modules
2> Michael..:
目前没有方便的方法.
在我看来,GCF不使用npm客户端从npm注册表获取,而是直接获取它.这可以防止使用标准.npmrc
文件或npm客户端知道的任何其他方法.
您必须在本地打包并安装包并将其提交给源代码:
$ npm pack @org/name
$ npm install --save tarball-output.tgz
这会将本地tarball添加到您package.json
和Google Cloud Functions将知道使用它.
我真的希望他们.npmrc
从项目根路径读取,或者我们可以将它们作为env变量传递给它们.
有一个未解决的问题:https:
//issuetracker.google.com/issues/36665861