NPM

Posted hzhjxx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NPM相关的知识,希望对你有一定的参考价值。

1概述

NPMNode Package ManagerNode包管理工具

什么是包:就是用来解决一个问题的一系列代码,一个项目可以被分割成一个个问题,把每个解决问题的代码封装成一个包,这样每次直接使用这个包就可以了。

最开始是打包成压缩文件,用时再解压。后来,使用cdn,在项目中引用cdn的地址就可以。

但随着项目的成长,功能不断增加,所需要的包,也就是依赖,越来越多。每个包都有其自己的生长方式,会有不同的版本。如果其中有一个包,依赖另一个包,例如插件a,依赖着jquery1,如果把jquery升级成2,那么插件a就不工作了,这就需要再去更新a,然后会发现插件b依赖着插件a...会出现连锁问题,整个项目都瘫痪了。

这时候,npm应运而生了,它不仅可以把包文件下载下来,还可以管理包与包之间的关系,谁依赖着谁。直接在项目中运行一段npm的代码,告诉它“帮我安装jquery”,“帮我安装xxx”,再也不用加入cdn的链接了,非常方便,实际项目中经常使用。

 

2安装

npm的运行环境nodejs安装上,npm自然安装上了。

官网:https://nodejs.org/en/

nodejs是一个强大的桥梁,就是连接js语言到操作系统,本来js只能运行在浏览器上,有了node后,js可以直接调用操作系统上的接口,实现以前因为浏览器会限制权限,js根本不可能实现的功能,例如操作一个文件,发送一个提醒等。

点击下载,选接适合自己操作系统的版本安装(例如windows64位)

TipsLTS表示长期维护的稳定版本,Current表示最新版本。

 技术图片

下载后,按照提示安装。

安装后,在dos命令窗口输入npm -v,出现版本号,说明安装成功了(实际上安装的是nodejs,因为nodejs自带了npm工具)

 技术图片

更新:

npm install [email protected] -g

 

 tips:在npm中,包(package)、模块(module)、依赖(dependency)说的都是一回事儿。

 

3常用操作

在一个目录下(注意不能是中文),cmd进入命令窗口,输入npm init -y,回车,

 技术图片

会在目录下生成一个package.json的文件,

 技术图片

技术图片

 

3.1添加依赖

例:添加jqueryvue等依赖:

 技术图片

会看到生成一个node_modules目录,里面是安装好的jqueryvue

 技术图片

技术图片

 

那么就可以在项目中引入:

 技术图片

 

这时即使把node_modules目录删掉,也没关系,因为在package.json中已经存在配置了:

 技术图片

 

试一下,把node_modules目录删除,然后在命令窗口输入npm i回车,

 技术图片

就可以看到node_modules目录又回来了,里面的jqueryvue也回来了。 

这样就非常方便,如果换一个环境,只要有package.json中的描述,再运行一遍npm i命令,就会安装好所有依赖了。 

注意名字不能写错,可以去npm官网搜,https://www.npmjs.com/

 

3.2删除依赖

npm uninstall 依赖名,回车

例:

 技术图片

技术图片 

 技术图片

 

3.3更新依赖

npm update 依赖名,回车

 

3.4安装某一个版本

npm i 依赖名@版本号,回车

 

4常用配置项

1"scripts" 用来指定一些命令的快捷方式,

可以自定义:

 技术图片

技术图片

 

2"dependencies" 在生产环境下用到的依赖

 

3"devDependencies" 只在开发环境或测试环境下用到的依赖

例:

npm i webpack --save-dev

 技术图片

技术图片

 

5 npm常用命令

npm init 初始化项目,其实就是创建一个package.json文件。

npm install 安装所有项目依赖。

npm help xxx 查看xxx命令的帮助信息。

npm search 搜索(快捷方式:find, s

  xxx 搜索xxx 如:npm search jquery

npm install 安装 (快捷方式:i

  xxx 搜索并安装xxx(局部)。安装多个依赖可用空格分割,如npm i jquery bootstrap

  xxx -g 搜索并安装xxx(全局)。安装多个同上。

  xxx -D 安装并将依赖信息写在package.json中的devDependencies中。

  快捷方式 i均可,如npm i jquery

  [email protected]版本号 指定需要安装的版本号,若不指定将安装最新的稳定版本。

npm uninstall 卸载(快捷方式:rm, r

  xxx 卸载xxx。多个依赖可用空格分割。

  xxx -D 卸载xxx,并将依赖信息从package.json中的devDependencies中清除。

npm list 列出已安装依赖(快捷方式:ls

  默认列出局部依赖。

  npm list -g 列出已安装的全局依赖。

npm outdated 检查过期依赖

npm update 更新依赖(快捷方式:up

  xxx 局部更新xxx

  xxx -g 全局更新xxx

npm root 查看依赖安装路径(也就是node_modules的路径)

  默认查看局部安装路径。

  -g 查看全局安装路径。

npm view 查看模块的注册信息

  xxx versions 列出xxx的所有版本, 如:npm view jquery versions

  xxx dependencies 列出xxx的所有依赖, 如:npm view gulp dependencies

 

以上是关于NPM的主要内容,如果未能解决你的问题,请参考以下文章

npm太慢, 淘宝npm镜像使用方法

npm太慢, 淘宝npm镜像使用方法

默认npm太慢,换用淘宝npm镜像

npm太慢, 淘宝npm镜像使用方法

npm ERR! code ETIMEDOUT npm ERR! syscall connect npm ERR! errno ETIMEDOUT npm ERR! network reques...

npm的使用与npm的团队建设