【发布时间】: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,但它没有内容(在我的本地计算机上,有内容)。我该怎么办?
【问题讨论】: