Npm

NPM 入门:包管理工具是什么

了解 NPM 是什么、它和 Node.js 的关系,以及如何初始化并管理前端项目依赖。

🎯 引言

学会这篇文章,你将明白 NPM 是什么、它为什么是每个前端项目都离不开的工具,以及它和 Node.js 之间的关系。你还会亲手初始化一个项目,安装第一个第三方依赖,迈出工程化开发的第一步。


🧱 什么是 NPM

NPM 全称是 Node Package Manager,也就是 “Node 包管理器”。它是随 Node.js 一起安装的命令行工具,用来帮你:

  • 安装别人写好的代码包(比如 Vue、React、Axios 等)。
  • 管理项目依赖,让所有人安装到的版本保持一致。
  • 运行脚本,比如 npm run devnpm run build
  • 发布自己写的包,供别人使用。
你可以把 NPM 理解成前端的“应用商店”。你想要什么功能,先搜一下有没有现成的包,有的话直接安装使用,不用从头写。

✨ 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。你可以在命令行中运行上面的命令,确认自己的环境是否准备就绪。

建议安装 Node.js 的 LTS(长期支持)版本,稳定性更好。如果你安装的 Node.js 版本太老,可能会导致一些新包安装失败。

🚀 初始化你的第一个 NPM 项目

在一个空文件夹中打开终端,执行:

npm init

NPM 会问你一些问题,比如项目名字、版本、描述等。回答完后,它会在当前目录生成一个 package.json 文件。

如果你不想一步步回答,可以直接使用默认配置:

npm init -y

生成的 package.json 大概长这样:

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.jsondependencies 中记录下来。

当前课程环境对应的 dayjs 版本为 ^1.11.13,你在安装时可以加上版本号来保证环境一致:

npm install dayjs@1.11.13

安装完成后,package.json 会变成:

package.json
{
    "dependencies": {
        "dayjs": "^1.11.13"
    }
}

在代码里这样使用:

index.js
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 -vnpm -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 文件夹中,这个文件夹通常不需要提交到代码仓库。


🧪 小练习

请按照以下步骤完成练习:

  1. 创建一个空文件夹,命名为 npm-demo
  2. 在文件夹中执行 npm init -y,生成 package.json
  3. 执行 npm install dayjs@1.11.13,安装 dayjs。
  4. 新建 index.js,使用 dayjs 打印当前日期和时间。
index.js
// 请在这里编写代码,使用 dayjs 输出当前时间

🎉 恭喜你掌握了 NPM 的基础概念和项目初始化!下一篇我们会深入了解 package.json 的每个字段,它可是你管理项目的“总控制台”。