以下是针对初学者的 Node.js 核心工具命令详解 ,用通俗语言和场景化示例,帮你快速理清 node
、npm
、cnpm
、npx
的作用和用法:
一、node
:JavaScript 运行时(核心引擎)
作用
node
是 Node.js 的核心命令,用于执行 JavaScript 代码(本地文件或直接输入代码),是 Node.js 环境的"启动器"。
基本用法
1. 执行本地 JavaScript 文件
bash
# 运行当前目录下的 app.js 文件
node app.js
# 运行指定路径的文件(跨目录)
node ./src/utils.js
2. 启动交互式 REPL(读取-求值-打印循环)
REPL 是一个"试错窗口",可直接输入 JavaScript 代码并立即看到结果,适合学习或调试小片段。
ini
node # 进入 REPL(输入 .exit 退出)
> 1 + 1 # 输入代码,输出 2
> const name = "Alice"; name # 输出 "Alice"
3. 执行代码片段(无需保存文件)
用 -e
参数直接执行一段 JavaScript 代码:
arduino
node -e "console.log('Hello, Node.js');" # 输出 "Hello, Node.js"
4. 查看 Node.js 版本
bash
node -v # 输出版本号(如 v18.16.0)
二、npm
:Node.js 包管理器("应用商店")
作用
npm
(Node Package Manager)是 Node.js 官方自带的包管理工具,用于安装、卸载、管理第三方库 (如 lodash
、express
),并记录项目依赖(通过 package.json
文件)。
基本用法
1. 初始化项目(生成 package.json
)
新建项目时,用 npm init
快速生成配置文件(记录项目名称、版本、依赖等信息)。
csharp
# 一路回车(使用默认值),生成 package.json
npm init -y # -y 表示"全部默认同意"
2. 安装本地依赖(项目内使用)
安装一个第三方库(如 axios
)到项目的 node_modules
目录,供代码调用:
perl
# 安装最新版 axios(本地)
npm install axios
# 安装指定版本(如 1.5.0)
npm install axios@1.5.0
# 安装多个包(用空格分隔)
npm install lodash express
3. 安装全局依赖(系统级工具)
有些工具需要全局可用(如 webpack-cli
、nodemon
),用 --global
(或 -g
)参数:
bash
# 全局安装 nodemon(自动重启 Node.js 应用)
npm install nodemon -g
4. 卸载依赖
bash
# 卸载本地依赖
npm uninstall axios
# 卸载全局依赖
npm uninstall nodemon -g
5. 执行项目脚本(快捷运行命令)
在 package.json
中定义 scripts
字段,用 npm run
执行自定义命令:
json
// package.json
{
"scripts": {
"start": "node app.js", // 启动应用
"dev": "nodemon app.js" // 用 nodemon 启动(自动重启)
}
}
arduino
# 执行 start 脚本(等价于 node app.js)
npm run start
# 执行 dev 脚本(等价于 nodemon app.js)
npm run dev
6. 查看依赖树
bash
npm ls # 查看项目依赖的层级结构(本地)
npm ls -g # 查看全局依赖
三、cnpm
:淘宝镜像加速的 npm(国内用户必备)
作用
npm
官方源()服务器在国外,国内下载包速度慢。cnpm
是淘宝提供的国内镜像源 npm 客户端,大幅提升安装速度。
基本用法
1. 安装 cnpm
ini
# 用 npm 全局安装 cnpm(指定淘宝镜像源)
npm install -g cnpm --registry=https://registry.npmmirror.com
2. 使用 cnpm 替代 npm
安装包时,将 npm install
替换为 cnpm install
,其他命令(如 uninstall
、run
)与 npm 一致:
bash
# 安装 axios(国内镜像加速)
cnpm install axios
# 全局安装 nodemon
cnpm install nodemon -g
3. 切换回 npm 官方源(可选)
若需使用官方源(如测试新包),可临时修改镜像源:
arduino
npm config set registry=https://registry.npmjs.org # 切回官方源
npm config get registry # 查看当前源
四、npx
:临时执行包命令(无需全局安装)
作用
npx
(随 npm 5.2+ 内置)是临时执行包命令的工具,无需提前全局安装包,直接调用包的可执行文件,避免全局环境污染。
基本用法
1. 执行本地安装的包(项目内)
项目中安装了 webpack
,但不想全局安装,可用 npx
直接运行:
bash
# 本地安装过 webpack(在 node_modules 中)
npx webpack # 临时调用 webpack 命令
2. 执行远程包(无需安装)
直接执行一个未安装过的包(npx
会临时下载并执行):
bash
# 创建 React 项目(无需全局安装 create-react-app)
npx create-react-app my-app
# 运行 ESLint 检查代码(未全局安装时)
npx eslint ./src
3. 指定版本执行
kotlin
# 执行指定版本的包(如 lodash@4.17.21)
npx lodash@4.17.21
4. 与 npm run 的区别
npm run
:依赖package.json
中的scripts
配置,适合高频重复命令(如启动、打包)。npx
:适合一次性任务或临时调用(如创建项目、运行工具),无需提前配置脚本。
五、总结:四大命令的核心场景
命令 | 核心作用 | 典型场景 |
---|---|---|
node |
执行 JavaScript 代码 | 运行 app.js 、启动 REPL、执行代码片段(node -e "..." ) |
npm |
管理项目依赖(本地/全局) | 初始化项目(npm init )、安装包(npm install )、执行脚本(npm run ) |
cnpm |
加速 npm 安装(国内用户) | 替代 npm install ,提升下载速度(cnpm install axios ) |
npx |
临时执行包命令(无需全局安装) | 创建项目(npx create-react-app )、运行未安装的工具(npx eslint ) |
六、实战示例(完整工作流)
假设你要开发一个 Node.js 小工具,步骤如下:
-
创建项目目录并初始化:
perlmkdir my-tool && cd my-tool npm init -y # 生成 package.json
-
安装依赖(用 cnpm 加速):
bashcnpm install axios # 安装 axios 用于网络请求
-
编写代码(
src/app.js
):iniconst axios = require('axios'); axios.get('https://api.example.com/data') .then(res => console.log(res.data)) .catch(err => console.error(err));
-
用 node 运行代码:
bashnode src/app.js
-
临时执行 ESLint 检查(未全局安装):
bashnpx eslint src/app.js
通过以上命令,你可以高效完成 Node.js 项目的开发、依赖管理和工具调用。记住:node
是执行代码的"发动机",npm
是"工具仓库管理员",cnpm
是"国内高速快递",npx
是"临时工具搬运工"! 🚀