npm包管理器完全指南
npm这玩意儿,说是Node.js的杀手级功能也不为过。装Node.js的时候npm就自带了,装了一百多万个包,全世界开发者都在用。这节课我们就来好好聊聊npm。
一、 npm是个啥
npm全称是Node Package Manager,顾名思义就是Node.js的包管理器。你可以把它理解为一个巨大的代码仓库,别人写好的功能你直接拿来用,不用自己造轮子。
装好Node.js之后,npm就自动装好了。验证一下:
npm -v
看到版本号就说明ok了。
二、 安装第一个包
来,先安装一个最常用的包——express,一个Node.js的Web开发框架:
npm install express
或者简写:
npm i express
安装完成后,你会发现项目文件夹里多了一个 node_modules 文件夹,里面就是安装的包。另外还多了一个 package-lock.json 文件,这个文件记录了所有包的精确版本号。
三、 package.json 是什么
这是每个Node.js项目最重要的文件!它记录了你的项目信息、依赖的包等等。
创建方式:
npm init
运行后会让你填一些信息:
- package name: 项目名字
- version: 版本号(默认1.0.0)
- description: 项目描述
- entry point: 入口文件
- test command: 测试命令
- git repository: Git仓库地址
- keywords: 关键词
- author: 作者
- license: 开源协议
填完就生成了一个 package.json 文件。
也可以一条命令搞定所有默认选项:
npm init -y
这样就直接用默认值生成了。
四、 dependencies 和 devDependencies
安装包的时候你会看到两种写法:
// 正式依赖,项目上线后也要用的 npm install express npm install vue
// 开发依赖,只有开发时用的,上线不需要 npm install --save-dev eslint npm install --save-dev webpack
两者的区别在于:
- dependencies:项目运行时必须的依赖
- devDependencies:开发时用的工具,比如代码检查、构建工具等
上线部署的时候,如果用 npm install --production,只会安装 dependencies,不会安装 devDependencies。
五、 常用npm命令大全
1. 安装相关
// 安装所有依赖(第一次拉项目必用) npm install
// 安装指定包 npm install lodash
// 安装指定版本 npm install lodash@4.17.21
// 全局安装(命令行工具用) npm install -g nodemon
// 安装最新版本 npm install lodash@latest
2. 更新相关
// 查看过时的包 npm outdated
// 更新单个包 npm update lodash
// 更新所有包 npm update
3. 卸载相关
// 卸载包 npm uninstall lodash
// 也行 npm remove lodash
4. 其他常用
// 查看安装了哪些包 npm list
// 查看某个包的版本 npm list express
// 搜索包 npm search express
// 查看包信息 npm view express
六、 实战:用npm搭建一个项目
来,实际操作一下:
第1步:创建项目
mkdir my-blog cd my-blog npm init -y
第2步:安装需要的包
// 安装express和模板引擎 npm install express ejs
// 安装开发工具 npm install --save-dev nodemon
现在你的 package.json 长这样:
{ "name": "my-blog", "version": "1.0.0", "main": "index.js", "dependencies": { "ejs": "^3.1.6", "express": "^4.18.2" }, "devDependencies": { "nodemon": "^2.0.20" } }
第3步:写代码
创建 app.js:
const express = require('express'); const path = require('path');
const app = express();
// 设置模板引擎为ejs app.set('view engine', 'ejs'); app.set('views', path.join(__dirname, 'views'));
// 首页路由 app.get('/', (req, res) => { res.render('index', { title: '我的博客' }); });
app.listen(3000, () => { console.log('博客已启动,访问 http://localhost:3000'); });
第4步:运行
// 开发时用nodemon自动重启 npx nodemon app.js
七、 npx是什么
npx是npm自带的工具,用来直接运行node_modules里的命令:
// 直接运行本地安装的包 npx nodemon app.js
// 或者运行远程的包 npx create-react-app my-app
npx的好处是不用全局安装,用完就走,不占用本地空间。
八、 npm镜像配置
国内用npm速度感人,可以换成淘宝镜像:
// 设置淘宝镜像 npm config set registry https://registry.npmmirror.com
// 换回官方源 npm config set registry https://registry.npmjs.org
或者使用cnpm:
npm install -g cnpm --registry=https://registry.npmmirror.com
之后就可以用 cnpm install 替代 npm install 了,速度快很多。
九、 小技巧
1. 加速安装
// 使用淘宝镜像安装 npm install express --registry=https://registry.npmmirror.com
2. 查看全局安装位置
npm root -g
3. 清除缓存
npm cache clean --force
4. 查看某个包的依赖树
npm ls express
十、 常见问题
安装失败
先清缓存再试:
npm cache clean --force npm install
权限报错
不要用sudo,用管理员权限打开终端,或者配置npm的全局路径。
不知道包名
去 https://www.npmjs.com 搜索,里面有一百多万个包。
十一、 下节预告
npm会用了,下节课我们来聊聊Node.js的文件系统操作,学完你就能读写文件、处理数据了!
有疑问?评论区见!