在我的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
文件夹,但它有无内容(在我的本地计算机上,内容在那里)。我该怎么办?
答案 0 :(得分:0)
您可以在package.json中使用file:/foo/bar
路径,并指向放置包的本地文件夹。然后部署您的应用程序和该本地文件夹。