目录
一、概念介绍
1.1包是什么
包英文单词是package,代表了一组特定功能的源码集合。
1.2包管理工具
管理包的应用软件,可以对包进行下载安装,更新,删除,上传等操作
提供包管理工具,可以快速开发项目,提升开发效率
包管理工具是一个通用的概念,很多编程语言都有包管理工具,所以掌握好包管理工具非常重要
1.3常用的包管理工具
- npm(Node Package Manager,翻译为中文即Node的包管理工具)
- yarm
- cnpm
二、npm
2.1npm安装
通过npm -v查看版本号,如果显示版本号,说明安装成功。
2.2npm基本使用
2.2.1初始化
创建一个空目录,然后以此目录作为工作目录启动命令行工具,执行那npm init
npm init命令的作用是将文件夹初始化为一个包,交互式创建package.json文件
package.json是包的配置文件,每个包都必须要有package.json
package.json内容示例:
{
"name": "test",
"version": "1.0.0",
"description": "学习",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
初始化过程中的注意事项:
- package name(包名)不能使用中文、大写,默认值是文件夹的名称,所以文件夹名称也不能使用中文和大写
- version(版本号)要求x.x.x的形式定义,x必须是数字,默认值1.0.0
- package.json可以手动创建与修改
- 使用npm init -y或者npm initial --yes极速创建package.json
2.2.2npm搜索包
搜索包方式:
1.命令行(使用较少) 【npm s/search 关键字】
编辑
2.网站搜索 网址是https:www.npmjs.com/
2.2.3下载安装包
通过npm install和npm i命令安装包
运行后文件下会增加两个资源
- node_modules 文件夹存放下载的包
- package-lock.json包的锁文件,用来锁定包的版本
如安装uniq
安装uniq之后,uniq就是当前这个包的一个依赖包,有时会简称依赖
比如我们创建一个包名A,A中安装了包名字是B,我们就说B是A的一个依赖包,也会说A依赖B
2.2.4require导入npm包的基本流程
- 在当前文件夹下node_modules中寻找同名的文件夹
- 在上级目录中下的node_modules中寻找同名的文件夹,直至找到磁盘根目录
2.3生产环境与开发环境
开发环境是程序员专门用来写代码的环境,一般是指程序员的电脑,开发环境的项目一般只能程序员自己访问
生产环境是项目代码正式运行的环境,一般是指正式的服务器电脑,开发环境的项目一般每个用户都可以访问
2.4开发依赖与生产依赖
可以在安装时设置选项来区分依赖的类型,目前分两类:
类型
命令
补充
生产依赖
npm i -S uniq
npm i --save uniq
-S等效于--save,-S是默认选项
包信息保存在package.json中dependencies
开发依赖
npm i D less
npm i --save-dev less
-D等效于--save-dev
包信息保存在package.json中devDependencies
生产依赖:既在开发阶段使用,又在最终的运行阶段使用
开发依赖:只在开发阶段使用,之后就没用了
但都会装在node_modules文件夹中的
2.5全局安装
我们可以执行安装选项-g进行全局安装
npm i -g nodemon
编辑
查看安装到的文件:
编辑
全局安装完成之后就可以在命令行的任何位置(随便找一个命令行窗口都可以)运行nodemon命令
作用:能让我们的node应用程序自动重启。(之前必须用ctrl+c重新启动服务台)
安装后 可以用nodemon来代替node来执行脚本
注意:并不是所有的包都适合全局安装,只有全局类的工具才适合,可以通过查看包的官方文档来确定安装方式。
2.6如何使用npm来安装包的所以依赖
在项目协作中又一个常用的命令npm i,通过该命令可以依据packsge.json和package-lock.json的依赖声明安装项目依赖
npm i
npm install
相同
注意:node_modules文件夹大多数情况都不会存入版本库
在进入项目时,首先先要使用npm i把所有依赖装上去,再去运行。
2.7安装指定版本的包
项目中可能遇到版本不匹配问题,有时需要安装指定版本的包,可以使用下面的命令
## 格式
npm i <包名@版本号>
## 示例
npm i jquery@1.11.2
2.8删除依赖
删除不需要的包
## 局部删除
npm remove uniq
npm r uniq
## 全局删除
npm remove -g nodemon
2.9npm配置命令别名
第一步,首先在package.json中的scripts中加入server
编辑
也可加入
"start": "node ./index.js"
直接在命令行输入npm start即可。
第二步,在命令行输入npm run server即可。
补充:
- npm start是项目中常用的一个命令,一般用来启动项目
- npm run有自动向上级目录查找的特性,跟require函数也一样
- 对于陌生的项目,可以通过查看scripts属性来参考项目的一些操作
三、cnpm
3.1介绍
cnpm是淘宝构建的npmjs.com的完整镜像,也称“淘宝镜像”,但该网站不能搜索列表。可以提高下载速度
官方也提供了一个全局工作包cnpm,操作命令于npm大体相同
3.2安装
可以通过npm来安装cnpm工具
npm install -g cnpm --registry=registry.npmmirror.com
3.3npm配置淘宝镜像(推荐npm, cnpm可以了解)
配置方法:
- 直接配置
- 工具配置
1、直接配置:
npm config set registry registry.npmmirror.com/
2、工具配置
使用nrm配置npm的镜像地址 npm registry manager
步骤一:安装nrm
npm i -g nrm
步骤二:修改镜像
之后下载包是直接取淘宝这个地方下载,速度更快
nrm use taobao
步骤三:检查是否配置成功
npm config list
检查registry地址是否为registry.npmmirrir.com/,如果是则成功。
也可通过nrm ls查看可选地址
编辑
注:yarn比npm快
包管理工具不要混着用!!!
四、NVM
4.1介绍
用来管理node版本的工具,方便切换不同版本的Node.js
4.2使用
跟npm相似