npm - Node包管理工具
这个特别特别重要,node啥也学不会,这个也得会
死了都要会
npm的基本概念
1. npm 是node的包管理工具,
2. 它是世界上最大的软件注册表,每星期大约有 30 亿次的下载量,包含超过 600000 个 包(package) (即,代码模块)。
3. 来自各大洲的开源软件开发者使用 npm 互相分享和借鉴。包的结构使您能够轻松跟踪依赖项和版本。
npm 由三个独立的部分组成:、
网站
注册表(registry)
命令行工具 (CLI)
- 作用:通过
npm
来快速安装开发中使用的包 - npm不需要安装,只要安装了node,就自带了
npm
npm基本使用
初始化包配置文件 (文件夹中不能有中文)
npm init; //这个命令用于初始化一个包,创建一个package.json文件,我们的项目都应该先执行npm init
//注意 : 不准使用中文
npm init -y; //快速的初始化一个包,
//注意 : -y:yes
安装包
npm install 包名; //安装指定的包名的最新版本到项目中
//注意 : 包名 一定都是小写的
npm install 包名@版本号; //安装指定包的指定版本
x.y.z
- z: 修改了bug,添加了小功能 1.0.1
- y: 改动了一个大功能 1.1.0
- x: 影响兼容性问题 2.0.1
npm i 包名; //简写 等同于 (npm i 包名 --save 和 npm i 包名 -S )
演示 : element-ui 和 vue-quill-editor编辑器
卸载包
npm uninstall 包名; //卸载已经安装的包
npm un 包名; // 简写
package.json文件
package.json文件,包(项目)描述文件,用来管理组织一个包(项目),它是一个纯JSON格式的。
- 作用:描述当前项目(包)的信息,描述当前包(项目)的依赖项
- 如何生成:
npm init
或者npm init -y
- 作用
- 作为一个标准的包,必须要有
package.json
文件进行描述 - 一个项目的node_modules目录通常都会很大,不用拷贝node_modules目录,可以通过package.json文件配合
npm i
直接安装项目所有的依赖项
- 作为一个标准的包,必须要有
- 描述内容
{
"name": "03-npm", //描述了包的名字,不能有中文
"version": "1.0.0", //描述了包的的版本信息, x.y.z 如果只是修复bug,需要更新Z位。如果是新增了功能,但是向下兼容,需要更新Y位。如果有大变动,向下不兼容,需要更新X位。
"description": "", //包的描述信息
"main": "index.js", //入口文件(模块化加载规则的时候详细的讲)
"scripts": { //配置一些脚本,在vue的时候会用到,现在体会不到
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [], //关键字(方便搜索)
"author": "", //作者的信息
"license": "ISC", //许可证,开源协议
"dependencies": { //重要,项目的依赖, 方便代码的共享 通过 npm install可以直接安装所有的依赖项
"bootstrap": "^3.3.7",
"jquery": "^3.3.1"
}
}
注意:一个合法的package.json,必须要有name和version两个属性
本地安装和全局安装
有两种方式用来安装 npm 包:本地安装和全局安装。选用哪种方式来安装,取决于你如何使用这个包。
-
全局安装:如果你想将其作为一个命令行工具,那么你应该将其安装到全局。这种安装方式后可以让你在任何目录下使用这个命令。比如less命令,webpack命令,hcc-md命令 。
-
演示 : 安装 mimie 和本地安装
-
本地安装:如果你自己的模块依赖于某个包,并通过 Node.js 的
require
加载,那么你应该选择本地安装,这种方式也是npm i 包名
命令的默认行为。
// 全局安装,会把npm包安装到C:\Users\HUCC\AppData\Roaming\npm目录下,作为命令行工具使用
npm install -g 包名;
//本地安装,会把npm包安装到当前项目的node_modules文件中,作为项目的依赖
npm install 包名;
// 本地
const mime = require('mime')
console.log(mime.getType('.aaa.txt'));
npm下载加速
nrm
- nrm:npm registry manager(npm仓库地址管理工具)
- 安装:
npm i -g nrm
# 带*表示当前正在使用的地址
# 查看仓库地址列表
nrm ls
# 切换仓库地址
nrm use taobao
nodemon 自动重启
-
作用:监视到js文件修改后,自动重启node程序
-
安装:
npm i -g nodemon
-
以前 : node 01-test.js
-
现在 : nodemon 01-test.js
-
使用:
nodemon app.js
运行node程序 -
演示 : 没有req和res参数,没有end,没有值,ok => 汉字 => 设置响应头
删除缓存(清缓存)
- 方式1:
npm cache clean -f(--force)
强制清除 - 方式2:
C:/..../用户名/APPData/Roaming/npm-cache
里面可以全部删除掉
hacknews案例
- Hacker News 示例
- 路由(route):就是一套映射规则,根据url地址分配到对应的处理程序
功能划分
- 1 新闻列表页 - /index get
- 2 新闻详情页 - /details get
- 3 新闻添加页 - /submit get
- 4 新闻添加请求 - /add post