Nodejs的cnpm包管理器快速入门
Nodejs的cnpm包管理器快速入门
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.China Node Package Manager(简称"CNPM")概述
1>.CNPM实现原理
CNPM全称为"China Node Package Manager",即中国的包管理镜器。其原理是用一个完整npmjs.org镜像,你可以用此代替官方版本(只读),同步频率目前为10分钟一次以保证尽量与官方服务同步。
在生产环境中,当我们下载的包比较大时,CNPM的作用还是相当可观的,毕竟你在国外下载一个比较大的包耗时较长,由于网络环境等因素可能要用到40分钟左右还未必能下载完毕,而用国内的软件源可能仅需几秒就可以搞定包下载的问题。
温馨提示:
当我们使用cnpm命令下载软件包时,默认会走国内的软件源去下载包,而使用npm命令下载软件包时,依旧还是回去官网下载哟~当然,你也可以将npm别名为cnpm哟,但我不推荐这样做,因为一旦国内的软件源服务器宕机后,你依旧无法访问官方的软件源(因为您将npm的别名指向了cnpm)
2>.CNPM的参考文档
国内的NPM软件源有很多,其中阿里云的软件源就是一个不错的选择,本片笔记就是使用阿里的软件源。 参考连接: https://developer.aliyun.com/mirror/NPM
二.基于cnpm工具安装软件源
1>.安装cnpm软件包
C:\Users\yinzhengjie>npm install -g cnpm --registry=https://registry.npm.taobao.org npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated har-validator@5.1.5: this library is no longer supported C:\Users\yinzhengjie\AppData\Roaming\npm\cnpm -> C:\Users\yinzhengjie\AppData\Roaming\npm\node_modules\cnpm\bin\cnpm + cnpm@6.1.1 added 689 packages from 974 contributors in 21.483s C:\Users\yinzhengjie>
2>.基于cnpm工具安装所需的软件包
C:\Users\yinzhengjie\demo>type package.json { "name": "demo", "version": "1.0.0", "description": "My local warehouse", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "math": "0.0.3" } } C:\Users\yinzhengjie\demo> C:\Users\yinzhengjie\demo>cnpm i express --save √ Installed 1 packages √ Linked 48 latest versions √ Run 0 scripts √ All packages installed (52 packages installed from npm registry, used 2s(network 2s), speed 333.54kB/s, json 49(122.96kB), tarball 547.46kB) C:\Users\yinzhengjie\demo> C:\Users\yinzhengjie\demo>type package.json { "name": "demo", "version": "1.0.0", "description": "My local warehouse", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "express": "^4.17.1", "math": "0.0.3" } } C:\Users\yinzhengjie\demo>
三.NodeJS搜索包的流程
NodeJS在使用模块名字来引入模块时,它会在当前目录的"node_modules"目录中寻找是否含有该模块,如果有则直接使用,如果没有则继续向上一级目录的"node_modules"中寻找,如果有就直接使用,如果没有就重复之前的步骤继续向上级目录找,直到找到根目录为止。
如果NodeJS到根目录的"node_modules"目录下依旧没有找到对应的模块文件,或者根目录压根就没有"node_modules"目录,则程序会报错~
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。
欢迎交流学习技术交流,个人微信: "JasonYin2020"(添加时请备注来源及意图备注)
作者: 尹正杰, 博客: https://www.cnblogs.com/yinzhengjie/p/14233105.html