npm是nodejs的包管理工具,所谓包管理工具就是对各类包和工具进行 安装,卸载,更新,查看,搜索,发布等操做的工具。就像咱们电脑上的电脑管家,管理各类软件的安装,卸载,升级等。
使用npm咱们能够很是轻松的管理各类包,并且诸多前端开发的工具诸如WebPack、Grunt等都是依赖于nodeJS的,这些工具的安装、使用都要经过npm。 咱们开发中用到的一些开源类库如jquery、bootstrap等均可以经过npm来下载和管理。 因此说,学会npm的使用对前端开发尤其重要前端
只用安装了nodeJS,npm就一块儿被安装了。
https://nodejs.org/en/download/ 下载地址
打开命令行工具(window下是cmd)
运行vue
npm -v
若是显示了npm的版本号,证实已经安装成功node
须要注意的是,使用npm的时候,通常先进入到项目目录中(命令号cd命令进入),下载的包会放在项目目录下的node_modules目录下(该目录会自动生成),跟我一块儿安装几个包。jquery
npm install jquery #安装jquery
在你的项目目录下就会生成一个node_modules目录,该目录下就有了jquery。 你能够多安装几个包git
npm install bootstrap #安装bootstrap npm install angular #安装angular npm install vue #安装vue
你会发现你的node_modules目录下就多了不少个目录github
npm list #该命令能够查看安装的包的列表 npm list 包名 #能够查看具体的包的信息(版本号)
若是你不肯定包名的话你能够搜索npm
npm search jquery #搜索名字里有"jquery"的包
若是想查看包的相关信息json
npm info bootstrap #查看bootstrap的信息,不论包是否安装均可以查看
固然,安装某个包的时候也能够制定包的版本号bootstrap
npm install jquery@1.12.4 #安装jquery-1.12.4
若是须要对已经安装的包进行更新服务器
npm update 包名
若是要卸载已经安装的包
npm uninstall 包名
上面咱们安装的包都是安装在了项目目录中, 若是安装的是命令行工具只能进入(cd)到项目目录中才能使用,npm也能够进行全局安装,npm能够进行全局的安装、卸载、升级,只有加上 "-g"
npm install 包名 -g
这样的安装的包是全局的,不会安装在项目目录的node_modules里,而是安装在全局目录中
npm config list #查看npm的配置, 其中配置项 prefix 就是全局安装目录
也能够
npm config get prefix #直接查看配置项prefix (全局安装目录)
固然
npm config set prefix 路径 #设置npm的全局安装目录
通常状况下,若是安装的包或工具只是本项目用到的,咱们不须要全局安装, 若是包是好多项目用到的,主要是一些前端工具(Grunt Glup WebPack 等)能够全局安装
咱们能够在项目目录下建立一个pageage.json文件,来写上本项目的一些介绍以及用到了那些包,pageage.json文件的主要内容以下
{ "name": "myapp", //package名字(自定义) "version": "1.0.0", //package的版本(自定义) "description": "", //描述(自定义) "main": "main.js", //主入口文件(自定义) "dependencies": { //package的应用依赖模块,及别人要使用这个package,至少须要安装哪些东西。 "jquery": "1.8.3", //bootstrap 版本号1.8.3 "bootstrap":"*", //bootstrap 版本号最新 "angular":"^1.6.2" //angular 朱版本号是1的最新版 }, "author": "lin", //做者 "license": "ISC" //受权 }
这里面,较为重要是dependencies依赖,它告诉咱们搞项目所须要的依赖(也就是用了哪些包)。 通常状况下,咱们写完项目发布的时候(如传到github上),咱们不会上传npm_modules这个目录, 别人拿到咱们的项目文件,cd到项目目录执行
npm install
npm会根据pageage.json中dependencies中的设置把相关的包都下载下来。
pageage.json这个文件通常不须要咱们手工建立,咱们在项目目录中运行
npm init
根据提示,输入内容(author description等信息 ),package.json就自动建立好了
在安装包时候添加 --save 会自动把包添加到 package.json的依赖中
npm install jquery --save
固然,卸载该包的时候,也要添加--save才能从依赖中移除,不然包是卸载了,但package.json中仍然有,
npm uninstall jquery --save
咱们注意到,在pageage.json中的dependencies中依赖的包的版本前面有 "^","~"等符号,这些符号都是什么意思呢?
> 1.1.1 版本必须必1.1.1大
>= 1.1.1 版本>=1.1.1
< 1.1.1
<= 1.1.1
~1.1.1 安装1.1.x 的最新版本 好比~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),可是不安装1.3.x,也就是说安装时不改变大版本号和次要版本号
^1.1.1 安装1.x.x 的最新版本 好比ˆ1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),可是不安装2.x.x,也就是说安装时不改变大版本号。
注意,关于版本号,如 jquery-1.12.4
1 是主版本号 用于不兼容的API修复
12 是副版本号或次版本号 用于向下兼容的功能性修复
4 是补丁版本号 用于向下兼容的bug修复
npm下载的包都是来自一个站点(就像一个下载站),因为服务器在国外,有时速度会较慢,甚至在某些敏感时期,你懂得。
npm config get registry
能够查看当前npm所使用的镜像地址 默认是 https://registry.npmjs.org/
咱们能够改为淘宝的npm镜像 参考 https://npm.taobao.org/
(完)