如何确定托管npm包的位置?

时间:2017-08-18 15:53:34

标签: node.js npm

我正在尝试在可控制访问Internet的计算机上安装一些npm软件包。我可以请求网络团队授予我访问远程主机/端口的权限,但我不清楚我需要访问哪些主机/端口。

通过npm安装的所有软件包是否都可通过单个主机/端口获得?如果没有,我如何确定我需要访问的主机/端口列表?

我很欣赏从安全角度来看,对npm主机/端口的开放访问可能不是最好的方法,并且最好在单独的机器上下载npm模块,然后我将其上传到我的安全主机。

1 个答案:

答案 0 :(得分:1)

存储npm包有两个标准位置:https://registry.npmjs.orghttps://github.com。您必须只能访问它们。

安装一些软件包并创建npm-shrinkwrap.json文件(使用命令npm shrinkwrap获取npm< 5,在npm> 5中,此文件名为package-lock.json,并自动生成)。打开创建的锁文件,查看每个包的resolved字段。

npm.shrinkwrap文件的一部分:

"lodash": {
  "version": "4.17.4",
  "from": "lodash@4.17.4",
  "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz"
},

"ng-bootstrap-lightbox": {
  "version": "1.0.1",
  "from": "git+https://github.com/themyth92/ng-bootstrap-lightbox.git",
  "resolved": "git+https://github.com/themyth92/ng-bootstrap-lightbox.git#b44c086723ccf066834b3edb654273c4661a4ad1"
}