2016-11-15 86 views
2

我正在一个artifactory没有互联网访问的环境中工作。我们希望使用artifactory作为npm注册表和主机。有没有可能上传外部依赖关系及其传递依赖关系?使用不带远程npm存储库的artifactory

例如:我在一台可以上网的计算机上,使用npm install下载了webpack及其所有依赖项。现在我使用artifactory访问访问另一个网络,并且想要上传我的node_modules文件夹。这种工作是否有用?

回答

3

除了Artifactory的代理/缓存功能,它还可以托管多个本地存储库(如npm存储库)。这基本上意味着您可以在Artifactory中创建一个npm local repository并将任何npm * .tgz包(您的依赖项)部署到此存储库中,Artifactory将为您的客户端生成相关的元数据。您只需部署相关软件包并配置您的npm客户端以从Artifactory解析。

+1

如何下载webpack及其依赖项作为tgz而无需手动解析其所有依赖项? – Daniel

+0

@daniel,我的[回复](http://stackoverflow.com/a/43673807/1021714)解决了这个问题,如果你还没有。 – braza

0

我最近做了一个节点模块,应该可以帮助解决这个问题。 你给它一个你想要下载的软件包列表,它将下载包含所有依赖项的软件包作为tar.gz.然后将它们保存在原始的npm文件夹结构中,并创建一个包含所有内容的tar.gz。

然后,您可以将tar.gz与所有依赖关系一起使用,并使用部署向导将其部署到Artifactory。 Artifactory Deploy

部署时,请选中复选框“部署为软件包工件”。这将提取包的tar.gz并将它们加载到npm存储库中。 Artifactory将读取所有软件包的package.json,并将加载相关信息,允许您使用npm提取软件包。

包被称为package-bundle,并且可以从NPM使用npm install -g package-bundle

要下载的软件包,你可以运行命令pb bluebird [email protected],这将提取指定的包可以下载,以及所有需要的依赖。

相关问题