npm,即node package manager,翻译过来就是“node包管理工具”。“node包”是啥呢?它就是jquery啦、bootstrap啦之类的各种版本。
1、npm的安装
第一步,下载安装。npm的安装就是安装npm的运行环境,npm的运行环境就是“nodejs.org”,去这个官网上下载即可。node的作用是连接js和操作系统。本来js只能在浏览器上使用,但有了node之后,js就可以调用操作系统上的接口。因此,node是js和操作系统的桥梁。
第二步,验证是否安装。打开电脑终端(【win+r】,运行【cmd】,回车),在终端里查看npm。以下为查看npm基本状态的几个指令。
【npm -v】:查看安装的npm版本。
【node -v】:查看安装的node版本。其实使用npm,本质上就是只安装了node,只不过是使用node下面的工具,也就是npm而已。
【npm install npm@版本号】:更新npm到某一版本,若更新到最新版本的话,就直接【npm install npm@latest -g】即可。
【ctrl+c】:打断进程。
2、npm的常用操作
第一个,【npm init -y】:npm初始化。使用这个指令后,会发现生成了一个“package.json”的文件。
第二个,【npm install jquery】=【npm i jquery】:安装jquery。使用这个指令后,终端会提示安装了一个包(package),也就是jquery。同时会生成一个“node_modules”的文件,在这个文件下面,就会有“jquery”这个文件了。引用的时候,路径为“node_modules/jquery/dist/jquery.js”。
第三个,【npm install】:会安装这个项目应该有的各种package。这样多个人共同写一个项目也不会乱了。
第四个,【npm uninstall jquery】:卸载jquery。
第五个,【npm update jquery】:更新jquery到最新版本。
3、npm的常用配置项
有的包是在生产环境下用的,比如axios、jquery,有的包是在开发环境和测试环境下用的,比如webpack。如果不明确说明,npm会默认安装在生产环境下。
比如:安装生产环境的包【npm install jquery】=【npm install jquery -S】=【npm install jquery --save】
在“package.json”文件夹里,会有一段代码叫做“dependencies:”,这里面存放的是在生产环境下的包。
而在开发环境和测试环境下使用的依赖,使用的指令为【npm i webpack --save-dev】=【npm i webpack -D】,该命令执行后,会在文件夹里多了一段代码,叫做“devDependencies”,里面存了webpack这个包。
4、安装包
【npm list】:输入这个指令,可以看见包之间的依赖关系树。有时候,明明只是安装了一个包,却看到node_moudles里面一连串安装了十好几个包,就是因为包之间存在依赖关系。
【npm view jquery versions】:通过这个命令,可以查看jquery从发版以来,截止到目前的全部版本号。
一般来说,一个包的版本号由3个部分组成,以13.4.6来举例说明:
13表示major,大版本,一旦更新,就是颠覆性的改变。
4表示minor(次要的,轻微的),次版本号,一般是添加了一些新功能。
6表示patch,对安装包打补丁,一般来说,偶数表示稳定的,因此一个大版本结束的时候,一般都是以偶数结尾的。
【npm outdated】: 查看哪些安装包过期了。
以axios为例,当前安装的axios版本为0.20.0,但是截止2021年3月份,axios的最新版本为其实是3.0.1,但是为什么这里的latest是0.21.1呢?
打开package.json文件,找到axios,发现版本号的安装前,有一个“^”符号。这表示锁死第一位,即大版本号。因此查找过期安装包的时候,会按照0这个大版本号查找0版本号下的最新的版本号。
"dependencies": { "animate.css": "^3.7.2", "axios": "^0.20.0" }
如果是【"axios": "~0.20.0"】,表示锁死前两位。
如果是【"axios": "0.20.0"】,表示锁死0.20.0这个版本。
如果是【"axios": "*"】,表示安装的版本为最新版本。
【npm cache clean --force】:清理缓存。有时候npm install 的过程中网挂了,没有安装成功,再次输入【npm install】的时候就会发现安装的特别快,这是因为有缓存。但是一旦安装不成功,以后再怎么【npm install】都不会成功的,还是删除node_moudules,然后使用这个指令,再重新按一次吧。
【pwd】:表示当前项目所在的路径。