当您拥有私有 NPM 包时,如何使用 CLI 部署到 Elastic Beanstalk?
Posted
技术标签:
【中文标题】当您拥有私有 NPM 包时,如何使用 CLI 部署到 Elastic Beanstalk?【英文标题】:How to deploy to Elastic Beanstalk using the CLI when you have Private NPM Packages? 【发布时间】:2020-10-06 05:27:33 【问题描述】:我们通过 NPM 使用几个命名空间的私有包。
当我们尝试像往常一样使用 EB CLI (eb deploy
) 进行部署时,一切都很好,直到 EB 尝试运行 npm i
。这会导致部署失败,因为 EB 无权访问我们的 NPM 组织的包。
我发现 4 多年前的 related questions 的解决方案似乎不起作用。
我们采用了在本地手动“压缩”文件并将其上传到 GUI 中的解决方法。
我们如何允许我们的 Elastic Beanstalk 实例通过 eb deploy
命令与我们的私有包一起部署?
【问题讨论】:
我觉得您链接的旧答案几乎是正确的,但使用的路径是 (/tmp/.npmrc
) 对我来说感觉不对。 docs for npmrc 指定 /etc/npmrc
可能会更好。也可能值得尝试将秘密直接放在 ebextension 中(即没有 NPM_TOKEN
变量),以防替换不再正常工作。
试一试
似乎无法解决问题。
我想知道这个其他问题是否相关。请参阅这两页:aws.amazon.com/premiumsupport/knowledge-center/… 和 medium.com/quick-code/…
由 stefansundin 链接的 AWS 支持页面提到以下内容:“在应用程序源包的根目录中创建一个名为 .npmrc 的文件。”你试过@MattWeber 吗?您尝试将 NPM 注册表凭据放在哪里?
【参考方案1】:
npm docs 很好地覆盖了它。问题是,由于某种原因,环境变量 NPM_TOKEN
没有被读取并且它失败了。我们通过将只读的 IP 白名单令牌硬编码到 .npmrc
文件中来修复。
【讨论】:
以上是关于当您拥有私有 NPM 包时,如何使用 CLI 部署到 Elastic Beanstalk?的主要内容,如果未能解决你的问题,请参考以下文章
错误 Firebase cli 云功能部署。 npm 错误!函数@ lint 脚本失败