【问题标题】:npm - How to Deploy a Project Having a Dependency on Our Internal Bitbucket to Azure?npm - 如何将依赖于我们内部 Bitbucket 的项目部署到 Azure?
【发布时间】:2017-10-14 15:25:09
【问题描述】:

在我的 Node.js 项目的 package.json 中,我有几个依赖项,这是一个示例:

...
"dependencies": {
  "lodash": "^4.17.4",
  "request": "^2.81.0",
  "request-promise-native": "^1.0.4",
  "my-module": "git+ssh://git@stash.my-company:7999/sub/my-module.git#v5.0.0"
},
...

my-module 是位于我公司的 Bitbucket 中的内部模块,无法向公众提供。我们的 Bitbucket 只能通过内网访问,不能通过 Internet 访问。

现在我想将项目从本地 Git 存储库部署到 Azure。我遵循https://docs.microsoft.com/en-us/bot-framework/deploy-bot-local-git 的指示,如果我不依赖my-module,肯定会成功。我从公司内部网络运行npm install 没有问题,但在部署到 Azure 时它会失败,因为无法访问我们的 Bitbucket 存储库。

我无法从外部访问我们的 Bitbucket,也无法发布 my-module(例如在 Github 中)。

知道如何巧妙地解决这个问题吗?

编辑:
不能只复制和粘贴,因为my-module 经常更改,我希望能够随时包含新版本。

所以我在 Git 子模块的帮助下尝试了这个:我将 my-module 作为子模块添加到我的项目中,并将其内容放入本地文件夹 lib/my-module,我现在在 package.json 中使用它。在 Azure 中,我不得不使用 SCM_DISABLE_SUBMODULES=1 禁用 Git 子模块的更新(因为 my-module 的 URL 是我们公司的内部存储库,Azure 无法访问)。然后我就能够成功地将我的项目部署到 Azure。

但是:在 Azure 中现在有文件夹 lib/my-module,但它没有内容(在我的本地计算机上,有内容)。我该怎么办?

【问题讨论】:

    标签: node.js git azure npm


    【解决方案1】:

    您可以在 package.json 中使用 file:/foo/bar 路径并指向您放置包的本地文件夹。然后部署您的应用和该本地文件夹。

    https://stackoverflow.com/a/38417065/46194

    【讨论】:

    • 谢谢。我已经用 Gits 子模块的更多经验具体化了我的问题——请看我上面的编辑。
    • @Markus 我认为子模块不会帮助您,它们从 git 服务器获取文件的方式与 git fetch 相同。
    • 我可能别无选择,只能通过复制和粘贴来包含my-module,或者在任何向公众开放的存储库中发布my-module
    • @Markus 也许你可以在你的 azure 服务器上设置一个私有的 npm 服务器,它可以从你自己的 npm 服务器上为模块提供服务? blog.maartenballiauw.be/post/2015/10/13/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-07
    • 2018-05-28
    • 2018-01-23
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 2012-02-11
    相关资源
    最近更新 更多