一、什么是Node.js和npm?¶
在开始使用npm之前,我们先简单了解它的“身份”:
- Node.js:是一个基于Chrome V8引擎的JavaScript运行环境,让JavaScript可以脱离浏览器在服务器端运行。它让前端开发者也能写后端代码,实现全栈开发。
- npm:全称Node Package Manager,是Node.js的默认包管理工具,相当于Node.js的“应用商店”。通过npm,你可以快速下载、安装、管理别人写好的JavaScript代码包(比如框架、工具库等),避免重复造轮子。
二、安装Node.js和npm¶
要使用npm,首先得安装Node.js(npm会随Node.js一起安装)。以下是不同系统的安装方法:
1. Windows系统¶
- 官网下载:访问 Node.js官网,点击“Download”下载对应系统版本(推荐LTS稳定版)。
- 安装时勾选“Add to PATH”(自动配置环境变量),一路下一步即可。
- 验证:打开命令提示符(CMD)或PowerShell,输入
node -v和npm -v,如果显示版本号(如v18.16.0),说明安装成功。
2. Mac系统¶
- 方法1(推荐):用Homebrew安装。先安装Homebrew(如果没装过):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
然后执行 brew install node。
- 方法2:官网下载安装包,步骤同Windows。
- 验证:打开终端,输入 node -v 和 npm -v。
3. Linux系统(以Ubuntu为例)¶
- 打开终端,执行:
sudo apt update
sudo apt install nodejs npm
- 验证同上。
三、npm的核心功能:初始化项目¶
在开始使用npm管理依赖前,需要先初始化一个项目,生成 package.json 文件(项目配置文件,记录项目信息和依赖)。
步骤:
1. 新建一个文件夹(如 my-project),打开终端进入该目录。
2. 执行 npm init,按提示填写项目名称、版本、描述等信息(也可直接用 npm init -y 快速生成默认配置)。
3. 生成的 package.json 会包含项目基本信息,例如:
{
"name": "my-project",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
其中 scripts 是关键,后续可定义项目启动命令(如 npm start)。
四、安装依赖:npm install¶
npm最常用的功能是安装第三方包。基本语法:
npm install <包名>
1. 本地安装 vs 全局安装¶
- 本地安装(默认):包会被安装到项目根目录的
node_modules文件夹下,仅当前项目可用。
例如:安装Web框架express(生产环境依赖):
npm install express --save
(--save 会自动将依赖写入 package.json 的 dependencies 字段,即生产依赖)。
- 全局安装(
-g参数):包会被安装到系统级目录,可在任何项目中直接调用。
例如:安装代码格式化工具prettier(全局工具):
npm install -g prettier
安装后可在终端直接执行 prettier --version 验证。
2. 生产依赖 vs 开发依赖¶
- 生产依赖(
dependencies):项目运行时必须的依赖(如react、vue、express)。
安装时用--save(或简写-S):
npm install react --save
- 开发依赖(
devDependencies):仅开发时需要的依赖(如代码检查工具eslint、构建工具webpack)。
安装时用--save-dev(或简写-D):
npm install eslint --save-dev
提示:安装时可省略
--save,npm会自动根据依赖类型写入对应字段(需确保package.json配置正确)。
五、管理依赖:查看、更新、卸载¶
1. 查看已安装依赖¶
- 查看所有依赖:
npm list
(会显示 node_modules 下的所有依赖树)。
- 查看生产依赖:
npm list --production
2. 更新依赖¶
- 更新单个依赖:
npm update <包名>
(更新到最新兼容版本,需注意版本号规则)。
- 更新所有依赖:
npm update
3. 卸载依赖¶
- 卸载生产依赖:
npm uninstall <包名>
(会自动从 package.json 和 node_modules 中移除)。
- 卸载开发依赖:
npm uninstall <包名> --save-dev
4. 清理依赖¶
- 移除未在
package.json中声明的依赖:
npm prune
六、常用npm命令速查表¶
| 命令 | 作用 |
|---|---|
npm init |
初始化项目,生成 package.json |
npm install <包名> |
安装包到本地(默认生产依赖) |
npm install -g <包名> |
全局安装包 |
npm install -S <包名> |
安装生产依赖并写入 dependencies |
npm install -D <包名> |
安装开发依赖并写入 devDependencies |
npm uninstall <包名> |
卸载包 |
npm update <包名> |
更新包到最新版本 |
npm list |
查看所有依赖 |
npm start |
运行 package.json 中 scripts 的 start 脚本 |
npm run <脚本名> |
运行自定义脚本(如 npm run build) |
七、实用技巧:解决国内访问慢问题¶
由于npm服务器在国外,国内用户访问可能较慢。可通过以下方式加速:
1. 使用淘宝镜像(推荐)¶
- 临时使用淘宝镜像安装:
npm install <包名> --registry=https://registry.npm.taobao.org
- 永久配置淘宝镜像:
npm config set registry https://registry.npm.taobao.org
- 验证是否生效:
npm config get registry # 显示淘宝镜像地址
2. 使用cnpm(淘宝官方工具)¶
- 安装cnpm:
npm install -g cnpm --registry=https://registry.npm.taobao.org
- 用cnpm代替npm:
cnpm install <包名>
八、注意事项¶
- 不要上传
node_modules到Git:
node_modules体积大且重复,可在.gitignore中添加:
node_modules/
package-lock.json
-
版本号规则:
package.json中依赖版本号用^(兼容小版本更新)或~(仅补丁版本更新),例如:
-^1.2.3:允许更新到1.3.x或1.4.x(小版本)。
-~1.2.3:仅允许更新到1.2.x(补丁版本)。 -
避免全局安装过多工具:
全局安装的包仅在终端可用,项目依赖应优先本地安装,避免版本冲突。
总结¶
npm是Node.js开发的核心工具,掌握它能极大提升开发效率。从初始化项目、安装依赖到管理版本,核心是理解 package.json 和依赖的分类(生产/开发)。通过本文的步骤和示例,你可以快速上手npm,后续可结合项目实践深入学习更多高级功能(如脚本配置、版本锁定等)。
现在,打开终端,尝试创建一个项目,安装第一个依赖吧! 🚀