npm使用

 

NPM介绍

NPM:Node Package Manager (包管理工具)

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。

  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。

  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

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

$ npm -version
6.14.6

升级更新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使用语义版本号来管理代码,这里简单介绍一下。

语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。

  • X:如果有大变动,新增了功能,向下不兼容,需要更新X位。

  • Y:如果是新增了功能,但是向下兼容,需要更新Y位。

  • Z:如果只是修复bug,需要更新Z位。

 

 

NPM命令使用介绍

使用NPM安装模块

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

npm install <Module Name>

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

npm install express

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

var express = require('express');

下载三方包

npmjs.com提供了可以根据包名来搜索的平台,但是如果不知道包名可以百度一下。知道了包名后,就可以使用命令去安装了,例如:Express

npm install express

下载完成之后,express包就放在了工程目录下的node_modules目录中,在代码中只需要通过reuqire('express')的方式去引用,无需指定包路径。

以上命令默认下载最新版本第三方包,如果要下载指定版本,可以在包名后面追加@,例如通过如下命令可以下载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"    
  }
}

全局安装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 -lnpm
包全局安装目录:windows: C:\Users\Administrator\AppData\Roaming\npmMacOSX: /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换源

nrm

全局安装 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 镜像

安装cnpm

$ npm install -g cnpm

安装包

$ cnpm install [模块名]

同步模块

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

cnpm sync [模块名]

其它命令

cnpm info [模块名]

 

npm上传自己的代码

  1. 第一步,在https://www.npmjs.com/ 注册自己的npm账号(记住自己的用户名,密码,邮箱)

  2. 第二步,新建上传代码的文件夹,在cmd中输入 npm init,按步骤输入package name:包名字(test)、version:版本号(0.0.3)、description:描述(npm包)、entry point:(index.js)一般不需要改、test command:不需要也可以、git repository:GitHub地址或者不填、keywords:关键字、author:作者、license: (ISC)、Is this OK? (yes)最后yes、

    你会得到一个package.json文件(之后需要在里面进行修改version),在其中写一些,

  3. 在上传自己的代码时,先查看源是npm还是taobao(nrm ls),如果是taobao则改为npm(nrm use npm),如果不改过来则会报错

  4. 输入npm login 输入自己的用户名,密码,邮箱,如果可以的话你的邮箱会得到一个验证码,输入进去

  5. 最后将自己的代码通过 npm publish 上传到npm上

 

 

 

 

 

 

 

 

 

 

posted @ 2022-02-07 21:41    阅读(117)  评论(0编辑  收藏  举报