如何下载npm离线安装包
下载npm离线安装包如何将本地nodejs库,放入到nexus的npm库在代码工程目录使用 npm install 安装 package.json 所依赖的文件,并依赖下载到 node_modules 目录1、通过 package.json安装依赖例如:项目依赖文件 package.json, 将其拷贝有网的机器,执行 mpm install安装依赖{"name": "joolun-ui","ve
如何下载npm离线安装包
如何将本地nodejs库,放入到nexus的npm库
在代码工程目录使用 npm install 安装 package.json 所依赖的文件,并依赖下载到 node_modules 目录
1、通过 package.json安装依赖
例如:项目依赖文件 package.json, 将其拷贝有网的机器,执行 npm install安装依赖
{
"name": "test",
"version": "1.0.0"
"dependencies": {
"base64-js": "^1.5.1"
},
"devDependencies": {
"css-loader": "^1.0.0"
}
}
2、查看依赖组件
执行npm install后会多出一个node_modules目录和一个package-lock.json文件,且node_modules 目录每个依赖项的都有一个package.json
[root@x test]# tree -C -L 3
.
├── node_modules # 已经下载完成的资源
│ ├── base64-js
│ │ ├── base64js.min.js
│ │ ├── index.d.ts
│ │ ├── index.js
│ │ ├── LICENSE
│ │ ├── package.json
│ │ └── README.md
│ ├── css-loader
│ │ ├── CHANGELOG.md
│ │ ├── index.js
│ │ ├── lib
│ │ ├── LICENSE
│ │ ├── locals.js
│ │ ├── package.json
│ │ └── README.md
│ ├── postcss-modules-values
│ │ ├── lib
│ │ ├── package.json
│ │ ├── README.md
│ │ ├── src
│ │ └── test
│ ├── .....
├── package.json # 项目所需要的各种模块配置信息
└── package-lock.json # 锁定实际已安装的各个npm package的具体来源和版本号
进入node_modules/base64-js目录,查看package.json文件,有个_resolved 属性是一个URL地址,在浏览器地址栏输入url即可下载,包名为:name+version就是tgz的包名;
[root@x test]# cd node_modules/base64-js/
[root@x base64-js]# ls
base64js.min.js index.d.ts index.js LICENSE package.json README.md
[root@x base64-js]# cat package.json
{
"name": "base64-js",
"version": "1.5.1",
"devDependencies": {
"babel-minify": "^0.5.1",
"benchmark": "^2.1.4",
"browserify": "^16.3.0",
"standard": "*",
"tape": "4.x"
},
"_resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"repository": {
"type": "git",
"url": "git://github.com/beatgammit/base64-js.git"
},
"...":"..."
}
查看package-lock.json文件,从resolved属性可以看到具体的下载地址
{
"name": "test",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
},
"css-loader": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz"
},
"postcss": {
"version": "6.0.23",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
"dev": true,
"requires": {
"chalk": "^2.4.1",
"source-map": "^0.6.1",
"supports-color": "^5.4.0"
},
"dependencies": {
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},...
}
},...
}
}
3、下载npm的*.tgz包
最终想要是base64-js-1.5.1.tgz这种npm包,以便于发布到私有npm仓库;
** 总结几种方式:**
3.1 方式1: 通过 package.json 的 _resolved属性链接下载
wget https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz
3.2 方式2: 通过 package-lock.json 的 resolved属性链接下载
wget https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz
3.3 方式3:本地直接打包方式
将组件目录base64js.min.js 、 index.d.ts 、 index.js 、 LICENSE、 package.json 、 README.md等文件拷贝到package文件夹里,然后执行如下命令,命名采用 name-version.tgz
tar -zcvf base64-js-1.5.1.tgz package
4、批量下载
使用**node-tgz-downloader工具下载
https://github.com/Meir017/node-tgz-downloader `
download-tgz package-lock package-lock.json
# 下载完成,查看依赖下载目录 tarballs 以及npm tgz格式的依赖
当包下载量过大时会提示下载失败,有可能是镜像仓库服务端做了限制,后续有时间自行实现下载,也快将文件分割成小份尝试,减少一次频繁下载量,尚未测试
[failed download tgz] undefined https://registry.npmmirror.com/happypack/-/happypack-5.0.1.tgz 4
[failed download tgz] undefined https://registry.npmmirror.com/isurl/-/isurl-1.0.0.tgz 5
[failed download tgz] undefined https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz 4
自己写了一个python的下载脚本:
批量下载npm离线安装包
如何批量上传npm到Nexus3、持续待更新
更多推荐
所有评论(0)