当您拥有私有 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?的主要内容,如果未能解决你的问题,请参考以下文章

NPM私有包部署到私有仓库

我应该在部署之前构建一个打字稿 npm 模块吗?

错误 Firebase cli 云功能部署。 npm 错误!函数@ lint 脚本失败

在 TypeScript 中导入没有作用域名称的作用域 npm 模块

部署到 Heroku 时的本地或私有 NPM 模块

windows 环境部署私有 npm 源