2、NPM

什么是NPM

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

主要功能如下:

由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入npm -v来测试是否成功安装。命令如下,出现版本提示表示安装成功。

image-20220210135447576

升级npm

如果安装的是旧版本的 npm,可以很容易得通过 npm 命令来升级,命令如下

npm install npm -g

安装模块

语法npm install <Module Name>

例如,在某个工程下面执行命令,安装express模块

npm install express

在js代码中,只需要通过 require()进行引入,就可以了

var express = require('express');

如果在安装过程中提示npm resource busy or locked.....,那么就执行命令npm cache clean清除缓存后再重新安装即可。

全局安装

语法:npm install <Module Name> -g

通过命令npm root -g查看全局包安装路径。

修改全局安装目录,修改C:\\Users\%username%\.npmrc(Windows),~/.npmrc(Linux/Mac)文件,prefix为全局模块安装路径,cache为缓存路径

prefix=E:\npm\node_global
cache=E:\npm\node_cache

也可以通过命令,修改两个路径

npm config set prefix "E:\npm\node_global"
npm config set cache "E:\npm\node_cache"

注意:修改完后,需要把新的全局模块安装路径E:\npm\node_global配置到系统环境变量中。

局部安装

语法:npm install <Module Name>

淘宝镜像cnpm

由于国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像

npm install -g cnpm --registry=https://registry.npmmirror.com

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

常用命令

npm install #安装模块,简写:npm i,-g为全局
npm uninstall #卸载模块,-g为全局
npm list #查看安装的所有模块,简写:npm ls,-g为全局
npm list <Module Name> #查看指定模块的版本
npm update <Module Name> #更新指定模块
npm search <Module Name> #搜索指定模块
npm help #查看帮助文档
npm help <command> #查看指定命令的帮助文档
npm cache clear #清空本地缓存,用来解决相同版本号代码不同无法更新的问题

创建模块

创建模块,package.json 文件是必不可少的。我们可以使用 NPM 生成 package.json 文件,生成的文件包含了基本的结果

语法:npm init

发布模块

#在npm资源库注册一个账号
npm adduser
#查看当前用户
npm who an i
#发布npm包,每次发布,版本号必须进行修改
npm publish

package.json

package.json 位于项目/模块的目录下,用于定义包的属性

{
  "name": "express",
  "description": "Fast, unopinionated, minimalist web framework",
  "version": "4.13.3",
  "author": {
    "name": "TJ Holowaychuk",
    "email": "tj@vision-media.ca"
  },
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/strongloop/express.git"
  },
  "homepage": "http://expressjs.com/",
  "keywords": [
      
  ],
  "dependencies": {
      
  },
  "devDependencies": {
      
  },
  "scripts": {
   
  }
}