NPM是什么
NPM的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包。
-
npm通常是和node.js一起安装的
-
npm,node package manager,是 Node 的模块管理器,功能极其强大。它是 Node 获得成功的重要原因之一。
随着一系列基于nodes的应用/工具的出现,工作中与nodejs打交道的机会越来越多。无论在node应用的开发,还是使用中,包管理都扮演着一个很重要的作用。
NPM出现背景
我们经常需要去下载一些资源,一般的做法是去相应的官网上下载。例如jquery,就去jquery的官网,zepto就去zepto的官网去下载,这样很麻烦。我们需要有一个地方,可以下载全部的资源。
一个直观的想法,就是去建立一下网站,让所有的公司都把自己的软件上传上来,这样,用户就可以去下载了,就不用到处找官网。
它提供npm这个工具:
你可以上传自己的代码。
你可以下载别人的代码。
约定标准的文件组织结构
NPM 运行方式
在安装node.js的同时,npm就已经被安装了。你可以在任何的cmd窗口去运行npm相关命令
NPM命令
npm -v 查看npm版本号
npm init 初始化npm
使用淘宝 NPM 镜像
大家都知道国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像。
淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。
你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:
npm install -g cnpm --registry=https://registry.npm.taobao.org
这样就可以使用 cnpm 命令来安装模块了:
cnpm install [name]
包(package)中在根目录下必须一定要有一个package.json文件
init这个命令就可以帮助在当前目录下自动创建这个package.json这个文件。
选项的说明:
- name: package的名字 (必须)
- version: package的版本 (必须)
- description: 包的描述
- author: 包的作者姓名
- main: 包的入口文件
- dependencies: package的应用依赖模块
- devDependencies: package的开发依赖模块
- scripts: 属性是一个对象,里边指定了项目的生命周期个各个环节需要执行的命令。
NPM 常用命令
命令 | 描述 |
---|---|
npm -v | 查看NPM版本 |
npm version | 查看所有模块版本 |
npm search 包名/部分包名 | 搜索包 |
npm init / npm init --yes / npm init -y | 初始化package.json文件 |
npm install/i 包名 | 安装包 |
npm install 包名@版本号 | 安装指定版本的包 |
npm update 包名 | 更新包 |
npm remove / r / uninstall 包名 | 删除包 |
npm install/i 包名 --save/S | 安装包并添加到依赖中 |
npm install | 根据package.json下载当前项目依赖的包 |
npm list -g --depth 0 | 查看全局安装过的包 |
npm root -g | 查看全局安装的包的保存目录 |
npm install 包名1 包名2 | 同时安装多个包(包名之间空格) |
npm config list | 查看当前的npm配置项 |
-g 是全局安装:安装之后,在任意目录下,打开cdm窗口你都可以使用
npm install 包名 -g
命令会安装在生产环境依赖
会修改package.json。会在package.json的dependencies属性下添加记录
运行npm install命令时,会自动安装包到node_modules目录中
npm install 包名 || npm install 包名 --save || -S
下载开发环境依赖
会修改package.json。会在package.json的devDependencies属性下添加记录
运行npm install命令时,会自动安装包到node_modules目录中
npm install 包名 --save-dev || -D
删除包
可能修改package.json.如果你安装时修改了这个文件,则删除时会去掉依赖项。
删除Node_modules下面对应文件
npm remove / r / uninstall 包名 | 删除包 |
查看当前的npm配置项
npm config list
npm i package -g可以让你的包下载npm root -g所指向的系统默认路径里,该路径被称之为全局路径,但是这并不能让你的包被全局访问到,如果想全局访问到第三方包,则必须配置NODE_PATH环境变量
全局安装与本地安装
npm 的包安装分为
- 本地安装(local)
- 全局安装(global)
从敲的命令行来看,差别只是有没有 -g 而已,比如
npm install express //本地安装
npm install express -g // 全局安装
(1) 本地安装:
将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
可以通过 require() 来引入本地安装的包。
(2) 全局安装:
将安装包放在 /user/local 下或者你 node 的安装目录。
可以直接在命令行里使用。