Node.js之npm

来源:互联网 发布:淘宝少女双肩背包 编辑:程序博客网 时间:2024/06/06 00:15

关于NPM

npm是nodejs的包管理工具,所谓包管理工具就是对各种包和工具进行 安装,卸载,更新,查看,搜索,发布等操作的工具。就像我们电脑上的电脑管家,管理各种软件的安装,卸载,升级等。
使用npm我们可以非常轻松的管理各种包,而且诸多前端开发的工具诸如WebPack、Grunt等都是依赖于nodeJS的,这些工具的安装、使用都要通过npm。 我们开发中用到的一些开源类库如jquery、bootstrap等都可以通过npm来下载和管理。 所以说,学会npm的使用对前端开发尤为重要

安装NPM

只用安装了nodeJS,npm就一起被安装了。
https://nodejs.org/en/download/ 下载地址
打开命令行工具(window下是cmd)
运行

npm -v

如果显示了npm的版本号,证明已经安装成功

NPM的简单使用

需要注意的是,使用npm的时候,一般先进入到项目目录中(命令号cd命令进入),下载的包会放在项目目录下的node_modules目录下(该目录会自动生成),跟我一起安装几个包。

npm install jquery #安装jquery

在你的项目目录下就会生成一个node_modules目录,该目录下就有了jquery。 你可以多安装几个包

npm install bootstrap #安装bootstrapnpm install angular   #安装angularnpm install vue       #安装vue

你会发现你的node_modules目录下就多了很多个目录

npm list  #该命令可以查看安装的包的列表npm list 包名  #可以查看具体的包的信息(版本号)

如果你不确定包名的话你可以搜索

npm search jquery  #搜索名字里有"jquery"的包

如果想查看包的相关信息

npm info bootstrap  #查看bootstrap的信息,不论包是否安装都可以查看

当然,安装某个包的时候也可以制定包的版本号

npm install jquery@1.12.4  #安装jquery-1.12.4

如果需要对已经安装的包进行更新

npm update 包名

如果要卸载已经安装的包

npm uninstall 包名

NPM的全局安装

上面我们安装的包都是安装在了项目目录中, 如果安装的是命令行工具只能进入(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 等)可以全局安装

package.json

我们可以在项目目录下创建一个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/

原创粉丝点击