> 文章列表 > Node【二】NPM

Node【二】NPM

Node【二】NPM

文章目录

  • 🌟前言
  • 🌟NPM使用
    • 🌟NPM使用场景
    • 🌟NPM的常用命令
    • 🌟NPM命令使用介绍
      • 🌟 使用NPM安装模块
      • 🌟 下载三方包
      • 🌟 全局安装VS本地安装
          • 🌟 本地安装
          • 🌟 全局安装
          • 🌟 全局模块路径查看与路径修改
      • 🌟 卸载模块
      • 🌟 更新模块
      • 🌟 搜索模块
      • 🌟 NPM服务器发布包
  • 🌟NPM换源
    • 🌟 nrm
      • 🌟 全局安装 nrm:
      • 🌟 nrm ls 列出来现在已经配置好的所有的原地址
      • 🌟 nrm use是切换到哪个源上
      • 🌟 nrm add添加源
      • 🌟 nrm del删除源
      • 🌟 nrm test测试源的响应时间,可以作为使用哪个源的参考
      • 🌟 使用淘宝 NPM 镜像
      • 🌟 安装cnpm
        • 🌟安装包
        • 🌟同步模块
        • 🌟其它命令
  • 🌟写在最后


在这里插入图片描述

🌟前言

哈喽小伙伴们,新的专栏 Node已开启;这个专栏里边会收录一些Node的基础知识和项目实战;今天我们开始这个专栏的第二篇文章,带领大家初识一下NPM;让我们一起来看看吧🤘

🌟NPM使用

Node Package Manager 简称NPM,是Node.js的包管理器。Node本身提供了一些基本API模块,但是这些基本模块难以满足开发者需求。Node需要通过使用NPM来管理开发者自我研发的一些模块,并使其能够共用与其他开发者。简单来说,NPM就是Node.js的包管理器。

🌟NPM使用场景

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

Nodejs已经集成安装了npm,可以通过输入 npm -v来测试是否成功安装。命令如下,出现版本提示表示安装成功:

$ npm -version
2.15.8

升级更新NPM

$ sudo npm install npm -g

🌟NPM的常用命令

序号 命令 描述
1 npm -v 显示版本,检查npm 是否正确安装。
2 npm install express 安装express模块
3 npm install -g express 全局安装express模块
4 npm uninstall express 卸载指定的模块
5 npm link express 把全局目录下的express模块链接到本地的node_modules下
6 npm list 列出已安装模块
7 npm search express 搜索指定的NPM包
8 npm show express 显示模块详情
9 npm update 升级当前目录下的项目的所有模块
10 npm update express 升级当前目录下的项目的指定模块
11 npm update -g express 升级全局安装的express模块
12 npm init 通过向导的方式生成package.json文件
13 npm adduser 添加用户 在npm官网注册的账号
14 npm publish . 可以发布自己制作的包到NPM服务器
15 npm unpublish <包名>@<版本号> 可以撤销发布自己发布过的某个版本包。

🌟NPM命令使用介绍

🌟 使用NPM安装模块

有一个简单安装任何Node.js模块,语法如下:

$ npm install <Module Name>

例如,下面是安装一个著名的Node.jsweb框架模块的命令叫 express:

$ npm install express

现在,你可以在js文件中使用此模块如下:

var express = require('express');

🌟 下载三方包

NPM建立了一个NodeJS生态圈,NodeJS开发者和用户可以在里边互通有无。

当你需要下载第三方包时,首先要知道有哪些包可用。npmjs.com提供了可以根据包名来搜索的平台,但是如果不知道包名可以百度一下。知道了包名后,就可以使用命令去安装了,例如:Express

npm install express

下载完成之后,express包就放在了工程目录下的node_modules目录中,在代码中只需要通过reuqire('express')的方式去引用,无需指定包路径。
以上命令默认下载最新版本第三方包,如果要下载指定版本,可以在包名后面追加@<version>,例如通过如下命令可以下载0.0.1版本的express。

npm install express@0.0.1

如果使用到的第三方包比较多,在终端下一个包一条命令的安装非常不方便,因此NPM对package.json的字段做了扩展,允许在其中添加三方包依赖。

npm install express --save
{"name":"test","main":"./lib/main.js","dependencies":{"express":"3.2.1"}
}

这样处理后,在工程目录下就可以使用npm install命令批量安装三包了。最重要的是,当以后吧test项目上传到了NPM服务器,别人下载这个包时,NPM会根据包中声明的三方依赖包进行自动下载依赖。这样用户只需要关心要使用的包,不用管其依赖的三方包。

🌟 全局安装VS本地安装

🌟 本地安装

默认情况下,NPM安装指定包默认会安装到本地。本地安装指的是包安装在当前目录中node_modules文件夹中。本地安装的包都可以通过require()方法进行访问。例如我们安装Express模块:

$ npm install express

列出所有本地安装的模块

$ npm ls

本地安装request模块:

npm install request

在实际工作中,安装包时可能需要指定包的版本号,命令格式如下:

npm install <包名>@<版本号>

例如,安装2.44版本的request模块:

npm install request@2.44

也可以使用版本号范围,安装某一版本范围的包版本。比如,安装版本号前缀为2.4的版本的request模块:

npm install request@2.4.x

可以通过以下命令,安装版本号大于2.0的request模块:

npm install request@">2.0"

还可以使用如下命令组合,安装指定范围的版本号的包:

npm install request@">=2.0 <2.5"
🌟 全局安装

全局安装包都存储在系统目录中。我们可以在nodejs的CLI(命令行界面)使用,但是不能直接使用require()方法进行访问。例如安装http-server包:

//全局安装 -g
$ npm install -g http-server
//使用node CLI  
$ http-server
🌟 全局模块路径查看与路径修改

查看部分npm默认设置

npm config ls

查看全部npm默认设置

npm config ls -l

npm包全局安装目录:

  • windows: C:\\Users\\Administrator\\AppData\\Roaming\\npm
  • MacOSX: /usr/local/lib/node_modules

修改全局模块安装路径

npm config set prefix "D:\\install\\node\\node_global"
npm config set cache"D:\\install\\node\\node_cache"

🌟 卸载模块

使用下面的命令卸载Node.js模块

npm uninstall express

🌟 更新模块

更加package.json并更新

npm update express

🌟 搜索模块

搜索使用NPM包名

npm search express

🌟 NPM服务器发布包

第一次使用NPM发布自己的包需要在npmjs.com注册一个账号

npm adduser                 # 添加用户  在npm官网注册的账号
Username: allcky            # 用户名
Password:                   # 密码
Email: (this IS public) allcky@qq.com
npm publish .               # 可以发布自己制作的包到NPM服务器
npm unpublish <包名>@<版本号> # 可以撤销发布自己发布过的某个版本包。

🌟NPM换源

npm全称Node Package Manager,是node.js的模块依赖管理工具。由于npm的源在国外,所以国内用户使用起来各种不方便。下面整理出了一部分国内优秀的npm镜像资源,国内用户可以选择使用。

🌟 nrm

nrm 是一个管理 npm 源的工具。用过 ruby 和 gem 的同学会比较熟悉,通常我们会把 gem 源切到国内的淘宝镜像,这样在安装和更新一些包的时候比较快。nrm 同理,用来切换官方 npm 源和国内的 npm 源(如: cnpm),当然也可以用来切换官方 npm 源和公司私有 npm 源。

包名 网址
nrm http://www.cnblogs.com/songqingbo/articles/5611588.html

🌟 全局安装 nrm:

npm i nrm -g

🌟 nrm ls 列出来现在已经配置好的所有的原地址

查看当前 nrm 内置的几个 npm 源的地址:

# nrm ls
结果如下:npm ---- https://registry.npmjs.org/cnpm --- http://r.cnpmjs.org/
* taobao - https://registry.npm.taobao.org/nj ----- https://registry.nodejitsu.com/rednpm - http://registry.mirror.cqupt.edu.cn/npmMirror  https://skimdb.npmjs.com/registry/edunpm - http://registry.enpmjs.org/

🌟 nrm use是切换到哪个源上

nrm use npm

🌟 nrm add添加源

nrm add  <registry> <url> [home]

🌟 nrm del删除源

nrm del <registry>

🌟 nrm test测试源的响应时间,可以作为使用哪个源的参考

nrm test

🌟 使用淘宝 NPM 镜像

淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

🌟 安装cnpm

$ npm install -g cnpm

这样就可以使用 cnpm 命令来安装模块了:

🌟安装包

$ cnpm install [模块名]

🌟同步模块

直接通过 sync 命令马上同步一个模块, 只有 cnpm 命令行才有此功能:

cnpm sync [模块名]

🌟其它命令

支持 npm 除了 publish 之外的所有命令, 如:

$ cnpm info [模块名]

🌟写在最后

更多Node知识以及API请大家持续关注,尽请期待。各位小伙伴让我们 let’s be prepared at all times!

✨原创不易,还希望各位大佬支持一下!
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!