跳过正文
  1. 文章/
  2. 前端/
  3. NodeJS/
  4. NodeJS环境/

2、NPM

·1581 字·4 分钟· loading · loading · ·
前端 NodeJS NodeJS环境
GradyYoung
作者
GradyYoung
NodeJS环境 - 点击查看当前系列文章
§ 2、NPM 「 当前文章 」

什么是NPM
#

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

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

主要功能如下:

  • 包管理:NPM 可以帮助你安装并管理项目所需的各种第三方库(包)。例如,可以通过简单的命令来安装、更新、或删除依赖。
  • 版本管理:NPM 支持版本控制,允许你锁定某个特定版本的依赖,或根据需求选择最新的版本。
  • 包发布:NPM 允许开发者将自己的库发布到 NPM 仓库中,其他开发者可以通过 NPM 下载并使用这些库。
  • 命令行工具:NPM 提供了强大的命令行工具,可以用于安装包、运行脚本、初始化项目等多种操作。

由于新版的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

  • 将安装包放在 /usr/local 下或者你 node 的安装目录(.npmrc文件指定的目录)。
  • 可以直接在命令行里使用。

通过命令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>

  • 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
  • 可以通过 require() 来引入本地安装的包。

淘宝镜像cnpm
#

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

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

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

  • cnpm install [module_name]

或者配置npm的镜像

npm config set registry https://registry.npmmirror.com

常用命令
#

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": {
   
  }
}
  • name - 包名。
  • version - 包的版本号。
  • description - 包的描述。
  • homepage - 包的官网 url 。
  • author - 包的作者姓名。
  • license - 开源协议。
  • dependencies - 运行时依赖包列表。如果依赖包没有安装。
  • devDependencies - 该模块中所列举的插件属于开发环境的依赖。
  • repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
  • main - main 字段指定了程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
  • keywords - 关键字。
  • scripts - 项目的相关脚本。
NodeJS环境 - 点击查看当前系列文章
§ 2、NPM 「 当前文章 」