npm 学习笔记

2026-08-02wei👁 21 阅读7 分钟阅读📝 2937 字💬 0 评论
npm 学习笔记

npm 学习笔记

一、什么是 npm?

npm(Node Package Manager)Node.js 官方提供的包管理工具,也是目前全球最大的 JavaScript 软件包生态系统。

简单来说:

npm = JavaScript/Node.js 世界的“应用商店 + 包管理器”

它的主要作用:

  • 下载第三方库(包)
  • 管理项目依赖
  • 执行项目脚本
  • 发布自己的包

二、为什么需要 npm?

假设开发一个 Vue 项目,如果没有 npm:

  1. 手动下载 Vue
  2. 手动下载 Vue Router
  3. 手动下载 Axios
  4. 手动管理版本
  5. 手动解决依赖冲突

不仅效率低,而且容易出错。

使用 npm 后,只需要一条命令:

bash
npm install vue 

或者:

bash
npm install axios 

npm 会自动:

  • 下载依赖
  • 放入项目目录
  • 管理版本
  • 自动安装依赖项

三、npm 的工作原理

执行:

bash
npm install axios 

工作流程:

text
npm install axios连接 npm Registry(官方仓库)查找 axios下载压缩包安装到 node_modules更新 package.json(可选)更新 package-lock.json 

四、Node.js 与 npm 的关系

很多初学者容易混淆:

Node.js npm
JavaScript 运行环境 JavaScript 包管理工具
用于执行 JavaScript 用于安装和管理依赖
安装 Node.js 后通常会自动安装 npm 依赖 Node.js 运行

查看版本:

bash
node -v 

查看 Node.js 版本。

查看 npm:

bash
npm -v 

查看 npm 版本。

例如:

text
Node.js:v22.18.0npm:10.9.3 

五、npm 项目中最重要的三个文件

1、package.json

项目配置文件,记录项目基本信息。

主要内容:

  • 项目名称
  • 项目版本
  • 作者
  • 依赖
  • scripts 脚本

示例:

json
{  "name": "my-project",  "version": "1.0.0",  "scripts": {    "dev": "vite",    "build": "vite build"  },  "dependencies": {    "vue": "^3.5.0",    "axios": "^1.9.0"  }} 

2、package-lock.json

依赖锁定文件。

作用:

  • 锁定依赖的准确版本
  • 保证团队所有人的依赖一致
  • 避免"我这里可以运行,你那里不能运行"

例如:

text
vue└── 3.5.2 axios└── 1.9.1 

3、node_modules

所有安装的第三方依赖都会放在这里。

项目结构:

text
project/├── node_modules/├── package.json├── package-lock.json 

注意:

一般不要提交到 Git。

其他开发者只需要:

bash
npm install 

即可重新下载。

通常会在 .gitignore 中忽略:

text
node_modules/ 

六、常用 npm 命令

1、初始化项目

普通初始化:

bash
npm init 

快速初始化:

bash
npm init -y 

生成:

text
package.json 

2、安装依赖

安装普通依赖:

bash
npm install axios 

简写:

bash
npm i axios 

安装多个依赖:

bash
npm install vue axios element-plus 

安装开发依赖:

bash
npm install -D vite 

或者:

bash
npm i --save-dev vite 

开发依赖通常用于:

  • Vite
  • Webpack
  • ESLint
  • Prettier
  • Jest

不会随着项目运行一起打包。


3、安装所有依赖

别人给你项目:

text
project/ package.jsonpackage-lock.json 

执行:

bash
npm install 

npm 会自动下载所有依赖。


4、卸载依赖

bash
npm uninstall axios 

5、更新依赖

bash
npm update 

6、查看安装的依赖

查看全部:

bash
npm list 

查看第一层依赖:

bash
npm list --depth=0 

7、执行 scripts

package.json:

json
{  "scripts": {    "dev": "vite",    "build": "vite build",    "test": "jest"  }} 

启动项目:

bash
npm run dev 

打包:

bash
npm run build 

测试:

bash
npm run test 

七、dependencies 与 devDependencies

dependencies

生产环境依赖。

安装:

bash
npm install axios 

或者:

bash
npm install --save axios 

例如:

  • Vue
  • Axios
  • Element Plus
  • Pinia

项目运行时必须存在。


devDependencies

开发环境依赖。

安装:

bash
npm install -D vite 

例如:

  • Vite
  • Webpack
  • ESLint
  • Prettier
  • Jest

仅开发时使用。


八、npm、Node.js、npx 的区别

工具 作用 示例
Node.js JavaScript 运行环境 node app.js
npm 下载和管理依赖 npm install vue
npx 临时执行 npm 包 npx create-vite my-app

例如:

bash
npx create-vite my-app 

如果本地没有该工具:

  • 自动下载
  • 自动运行
  • 不需要全局安装

九、现代前端为什么离不开 npm?

一个 Vue3 项目通常依赖:

text
Vue3 项目├── Vue├── Vite├── Vue Router├── Pinia├── Axios├── ESLint├── Prettier├── TypeScript(可选) 

这些库几乎都通过 npm 安装和管理,因此 npm 已成为现代前端开发的基础工具。


十、学习重点(面试高频)

必须掌握

  • npm 是什么
  • Node.js 与 npm 的关系
  • package.json 的作用
  • package-lock.json 的作用
  • node_modules 的作用
  • npm install 的执行流程
  • npm init 的作用
  • npm run 的作用
  • dependencies 与 devDependencies 的区别
  • npm、Node.js、npx 的区别

十一、常用命令速查表

命令 作用
node -v 查看 Node.js 版本
npm -v 查看 npm 版本
npm init 初始化项目
npm init -y 快速初始化
npm install 包名 安装依赖
npm i 包名 安装依赖(简写)
npm install -D 包名 安装开发依赖
npm uninstall 包名 卸载依赖
npm update 更新依赖
npm list 查看所有依赖
npm list --depth=0 查看一级依赖
npm run dev 启动开发环境
npm run build 打包项目
npm run test 执行测试
npx create-vite my-app 创建 Vite 项目

十二、总结

一句话理解:

  • Node.js:JavaScript 的运行环境。
  • npm:Node.js 的包管理工具,用于安装、管理和更新依赖。
  • package.json:记录项目配置和依赖信息。
  • package-lock.json:锁定依赖版本,保证团队环境一致。
  • node_modules:存放所有下载的第三方依赖。
  • npx:临时执行 npm 包,无需全局安装。

掌握 npm 是学习 Vue、React、Angular、Node.js 等现代前端和全栈开发的基础,也是企业开发中必不可少的技能。

wei
技术博客作者
2937 字 · 0 评论
2026-08-02

评论 (0)

暂无评论,来写第一条吧

登录后发表评论

分类

友链

关于本站

用 SpringBoot + Nuxt3 搭建的个人技术博客,记录编程之路的思考与收获。

© 2026 好啵博客 · Built with ❤️ & SpringBoot + Nuxt3