我正在尝试在可控制访问Internet的计算机上安装一些npm软件包。我可以请求网络团队授予我访问远程主机/端口的权限,但我不清楚我需要访问哪些主机/端口。
通过npm安装的所有软件包是否都可通过单个主机/端口获得?如果没有,我如何确定我需要访问的主机/端口列表?
我很欣赏从安全角度来看,对npm主机/端口的开放访问可能不是最好的方法,并且最好在单独的机器上下载npm模块,然后我将其上传到我的安全主机。
答案 0 :(得分:1)
存储npm包有两个标准位置:https://registry.npmjs.org和https://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"
}