npm - 如何部署一个依赖我们内部Bitbucket到Azure的项目?

时间:2017-10-13 19:28:58

标签: node.js git azure npm

在我的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只能从内部网访问,无法通过互联网访问。

现在我想将项目从本地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中,我必须通过my-module禁用Git子模块的更新(因为SCM_DISABLE_SUBMODULES=1的URL是我们公司的内部存储库,Azure无法访问它)。然后我就能够将我的项目成功部署到Azure。

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

1 个答案:

答案 0 :(得分:0)

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

请参阅https://stackoverflow.com/a/38417065/46194