NPM 入门:包管理工具是什么
🎯 引言
学会这篇文章,你将明白 NPM 是什么、它为什么是每个前端项目都离不开的工具,以及它和 Node.js 之间的关系。你还会亲手初始化一个项目,安装第一个第三方依赖,迈出工程化开发的第一步。
🧱 什么是 NPM
NPM 全称是 Node Package Manager,也就是 “Node 包管理器”。它是随 Node.js 一起安装的命令行工具,用来帮你:
- 安装别人写好的代码包(比如 Vue、React、Axios 等)。
- 管理项目依赖,让所有人安装到的版本保持一致。
- 运行脚本,比如
npm run dev、npm run build。 - 发布自己写的包,供别人使用。
✨ NPM 和 Node.js 的关系
很多人第一次听说 NPM,会把它和 Node.js 搞混。其实它们的关系很简单:
- Node.js:是一个让 JavaScript 可以在电脑上运行的环境(脱离了浏览器)。
- NPM:是 Node.js 自带的包管理工具,安装 Node.js 时通常会自动装上 NPM。
安装完 Node.js 后,你可以在终端里输入以下命令检查版本:
node -v
npm -v
当前课程环境使用 Node.js v22.0.0,对应的 NPM 版本为 10.x。你可以在命令行中运行上面的命令,确认自己的环境是否准备就绪。
🚀 初始化你的第一个 NPM 项目
在一个空文件夹中打开终端,执行:
npm init
NPM 会问你一些问题,比如项目名字、版本、描述等。回答完后,它会在当前目录生成一个 package.json 文件。
如果你不想一步步回答,可以直接使用默认配置:
npm init -y
生成的 package.json 大概长这样:
{
"name": "my-first-project",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
这个文件就是项目的“身份证”,记录了项目的基本信息和依赖列表。后面我们会详细讲解它。
📦 安装第一个依赖包
假设你想在项目中使用 dayjs 来处理日期格式。只需要执行:
npm install dayjs
NPM 会自动下载 dayjs 到当前项目的 node_modules 文件夹,并在 package.json 的 dependencies 中记录下来。
当前课程环境对应的 dayjs 版本为 ^1.11.13,你在安装时可以加上版本号来保证环境一致:
npm install dayjs@1.11.13
安装完成后,package.json 会变成:
{
"dependencies": {
"dayjs": "^1.11.13"
}
}
在代码里这样使用:
const dayjs = require('dayjs');
console.log(dayjs().format('YYYY-MM-DD HH:mm:ss'));
^1.11.13 表示安装 1.x 系列中最新的兼容版本,但大版本不会自动升级到 2.0.0。这种写法既能让项目获得补丁更新,又避免大版本破坏现有代码。🧾 小节总结
- NPM 是 Node.js 自带的包管理工具,用来安装、管理和发布代码包。
- 安装 Node.js 时会自动安装 NPM,可用
node -v和npm -v查看版本。 npm init用于初始化项目并生成package.json。npm install 包名用于安装依赖,安装时会自动记录在package.json中。
❓ 知识问答
Q1:NPM 只能用在 Node.js 项目里吗?
A:不是。只要项目用到了 JS 生态的第三方包(比如 Vue、React、Webpack 等),就需要 NPM。它既服务 Node.js 后端项目,也服务前端项目。
Q2:package.json 是干什么的?
A:它是项目的配置文件,记录项目信息、脚本命令和依赖列表。拿到一个项目后,先运行 npm install 就能根据它把依赖全部装好。
Q3:不装 Node.js 能单独装 NPM 吗?
A:不能。NPM 是 Node.js 安装包的一部分,推荐直接安装 Node.js 来获得 NPM。
Q4:npm install 后面的包安装到哪里了?
A:安装到当前项目的 node_modules 文件夹中,这个文件夹通常不需要提交到代码仓库。
🧪 小练习
请按照以下步骤完成练习:
- 创建一个空文件夹,命名为
npm-demo。 - 在文件夹中执行
npm init -y,生成package.json。 - 执行
npm install dayjs@1.11.13,安装 dayjs。 - 新建
index.js,使用 dayjs 打印当前日期和时间。
// 请在这里编写代码,使用 dayjs 输出当前时间
🎉 恭喜你掌握了 NPM 的基础概念和项目初始化!下一篇我们会深入了解 package.json 的每个字段,它可是你管理项目的“总控制台”。
