NPM 包管理工具

1.1 定义:什么是 NPM

NPM 全称 Node Package Manager,它是 JavaScript 的包管理工具, 并且是 Node.js 平台的默认包管理工具。通过NPM 可以安装、共享、分发代码,管理项目依赖关系。

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

其实我们可以把 NPM 理解为前端的 Maven。我们通过 npm 可以很方便地安装与下载 ,管理前端工程。

最新版本的 Node.js 已经集成了 npm 工具,所以必须首先在本机安装 Node.js

Node.js 官网下载地址:

装完成后,查看当前 nodejs 与 npm 版本

  • 查看node.js版本:node -v
  • 查看npm版本:npm -v

1.2 NPM命令操作

1.2.1 NPM初始化

npm init 命令初始化项目:

新建一个 文件夹,通过命令提示符窗口进入到该文件夹,执行下面命令进行初始化项目

最后会生成package.json文件,这个是包的配置文件,相当于maven的pom.xml。可以根据需求修改。

1.2.2 安装模块

npm install 命令用于安装某个模块,安装方式分为 :本地安装(local)、全局安装(global)两种.

本地安装

将 JS 库安装在当前执行命令时所在目录下,安装

举例:安装express模块

如果出现黄色的是警告信息,可以忽略,请放心,你已经成功安装了。

在该目录下会出现一个 node_modules 文件夹 和 package-lock.json

node_modules 文件夹用于存放下载的js库(相当于maven的本地仓库)

package-lock.json 是在 npm install 时候生成一份文件。

用以记录当前状态下实际安装的各个包的具体来源和版本号。

重新打开 package.json 文件,发现刚才下载的 jquery.js 已经添加到依赖列表中了.

关于模块版本号表示方式:

指定版本号:比如 3.5.2,只安装指定版本。遵循 “大版本.次要版本 小版本”的格式规定。

~波浪号 + 指定版本号:比如 ~3.5.2,安装 3.5.x 的最新版本(不低于 3.5.2),但是不安装 3.6.x,也

就是说安装时不改变大版本号和次要版本号。

^ 插入号 + 指定版本号:比如 ^3.5.2,安装 3.x 新版本(不低于 3.5.2),但是不安装 4.x.x,也

就是说安装时不改变大版本号。需要注意的是,如果 本号为0,则插入号的行为与波浪号相同,这是

因为此时处于开发阶段,即使是次要版本号变动,也可能带来 程序的不兼容。

latest:安装最新版本。

全局安装

将 JS 库安装到你的 全局目录 下

使用全局安装会将库安装到你的全局目录下。

查看全局安装目录

如果你不知道你的全局目录在哪里,执行命令:

如果安装时出现如下错误:

npm err! Error: connect ECONNREFUS 27.0.0.1:8087

解决方法,执行如下命令:

npm config set proxy null

1.2.3 生产环境模块

格式:

--save或 -S 参数意思是把模块的版本信息保存 package.json 文件的 dependencies 字段中(生产环境依赖)

在 package.json 文件的 dependencies 字段中

1.2.4 生产环境模块

格式:

--save-dev 或 -D 参数是把模块版本信息保存到 package.json 文件的 devDep ncies 字段中(开发环境

依赖),所以开发阶段一般使用它:

举例:

安装 eslint 模块,它是语法格式校验,只在开发环境依赖中即可

在 package.json 文件的 devDependencies 段中

1.3 批量下载模块

我们从网上下载某些项目后,发现只有 package.json , 没有 node_modules 文件夹,这时我们需要通过命令下载

这些js库。

命令提示符进入 package.json 所在目录,执行命令:

此时,npm 会自动下载 package.json 中依赖的js库.

1.4 查看模块命令

1.4.1查看本地已安装模块方式

方式1:可以安装目录 node_modules 下的查看包是否还存在

方式2:可以使用以下命令查看:

1.4.2查看模块远程最新版本

举例:

1.4.3查看模块远程所有版本

npm view <Module Name> versions

举例: 查看 jquery 模块的所有版本

npm view jquery versions

1.5卸载模块

卸载局部模块

npm uninstall <Module Name>

卸载全局模块

npm uninstall -g <Module Name>

1.6配置淘宝镜像加速

1. 查看当前使用的镜像地址

2. 配置淘宝镜像地址

1.7安装cnpm

1. 安装cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

2. 使用cnpm

cnpm install xxx

NPM 包管理工具详解,使用教程的更多相关文章

  1. Node.js权威指南 (4) - 模块与npm包管理工具

    4.1 核心模块与文件模块 / 574.2 从模块外部访问模块内的成员 / 58 4.2.1 使用exports对象 / 58 4.2.2 将模块定义为类 / 58 4.2.3 为模块类定义类变量或类 ...

  2. Node.js之包与npm包管理工具

    Node.js之包与npm包管理工具 1.Node.js中的包 1.1在一个包中包含如下内容: package.json:对包进行描述 在bin子目录中存放二进制文件 在lib子目录中存放JavaSc ...

  3. node.js中npm包管理工具

    现在安装node.js,默认就会帮我们装上了npm包管理工具,npm主要用来下载,安装,管理第三方模块. 创建一个包描述文件: npm init [-y] 查看包的信息 npm info <pa ...

  4. nodeJS---模块与npm包管理工具

    nodeJS---模块与npm包管理工具 一:从模块外部访问另一个模块内的成员; 假如我现在还在D盘中的node文件夹内中的app.js代码改成如下: var msg = 'hello'; var f ...

  5. Nodejs-内置核心模块&npm包管理工具

    1.核心模块的意义 如果只是在服务器运行JavaScript代码,其实意义不大(浏览器就可以解决)因为无法实现功能(读写文件,访问网络) Node的用处在于本身还提供了一系列的功能模块,用于与操作系统 ...

  6. NodeJS 中npm包管理工具

    NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从 ...

  7. npm包管理工具在一般项目中的应用方法

    最近自己在有时间,在通学一些知识点,记录一下,以便以后使用方面 当我们在做项目的时候,如果需要到包管理工具,那么我们一定会经历以下流程: 1.首先在官网下载node.js,然后默认安装到C盘 检查是否 ...

  8. node.js开发 npm包管理工具

    npm介绍 说明:npm(node package manager)是nodejs的包管理器,用于node插件管理(包括安装.卸载.管理依赖等) 使用npm安装插件:命令提示符执行npm instal ...

  9. node.js开发 npm包管理工具 npm 和 cnpm区别

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

随机推荐

  1. Python学习,第八课 - 函数

    本次讲解函数,由于内容比较多,小编列了个大纲,主要有一下内容: 1. 函数基本语法及特性 2. 函数参数 3.局部变量 4. 返回值 5.嵌套函数 6.递归 7.匿名函数 8.高阶函数 9.内置函数 ...

  2. CSS-- 实用CSS样式

    自用实用CSS样式 1.清除DIV浮动 <span style="font-family:KaiTi_GB2312;">clear: both;</span> ...

  3. 八、django学习之分组查询、F查询和Q查询

    分组查询.F查询和Q查询 分组查询 统计每个出版社出版的书籍的平均价格 第一种方式 obj = models.Book.objects.values('publishs_id').annotate(a ...

  4. DjangoBBS项目功能拆分

    目录 1.随机验证码 2.注册功能 3.登录功能 4.登录认证装饰器配置 5.修改密码模态框方法 6.修改头像 7.修改签名模态框方法 8.注销功能模态框 9.用户上传静态文件配置 10.图片防盗链 ...

  5. 第三次作业:使用Packet Tracer分析TCP连接的建立与释放过程

    0 个人信息 张樱姿 201821121038 计算1812 1 实验目的 使用路由器连接不同的网络 使用命令行操作路由器 通过抓取HTTP报文,分析TCP连接建立的过程 2 实验内容 使用Packe ...

  6. JAVA中CLASS.FORNAME的含义

    Class.forName(xxx.xx.xx) 返回的是一个类, .newInstance() 后才创建一个对象 Class.forName(xxx.xx.xx);的作用是要求JVM查找并加载指定的 ...

  7. Codeforces_711_A

    http://codeforces.com/problemset/problem/711/A 忙了一天没做题,做到水题,我这水平也只能做水题了= = ! #include<iostream> ...

  8. 【Java并发工具类】ReadWriteLock

    前言 前面介绍过ReentrantLock,它实现的是一种标准的互斥锁:每次最多只有一个线程能持有ReentrantLock.这是一种强硬的加锁规则,在某些场景下会限制并发性导致不必要的抑制性能.互斥 ...

  9. Golang内存模型

    Ref: https://golang.org/ref/mem 简介 golang内存模型,主要说明了如下问题.在一个goroutine中读取变量,而该变量是由其他goroutine赋值的,这种情况下 ...

  10. 渡一教育公开课重点笔记之css

    主流浏览器及内核 浏览器         内核 IE             trident Firefox    Gecko Google chrome    Webkit/blink(2014年上 ...