前言
后面安装n8n要用到,做一点技术储备。主要是它的两个工具:npm 和 npx。
Node.js介绍
Node.js 是一个免费的、开源的、跨平台的 JavaScript 运行时环境,允许开发人员在浏览器之外编写命令行工具和服务器端脚本,是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境,让 JavaScript 可以脱离浏览器运行在服务器端,用于构建高性能、可扩展的网络应用(如 Web 服务器、API、微服务等)。
Node.js 相关核心工具及作用
工具/概念 | 作用 |
---|---|
npm(Node 包管理器) | 管理 JavaScript 依赖包(安装、更新、删除等) |
npx(Node 包运行器) | 临时执行 npm 包(无需全局安装,如 npx create-react-app ) |
yarn / pnpm | 更快的 npm 替代品(缓存优化、并行安装) |
Express.js | 最流行的 Node.js Web 框架(快速搭建 API/网站) |
nodemon | 开发工具,代码改动后自动重启 Node 服务 |
PM2 | 生产环境进程管理器(守护进程、负载均衡) |
Webpack / **ViteVite | 前端代码打包工具(配合 Node.js 使用) |
TypeScript | JavaScript 的超集ts-node 运行) |
Note.js安装
使用官方网站安装包
-
访问 Node.js 官网。
-
下载适合你系统的安装包(推荐 LTS 版本,即长期支持版本)。
-
运行下载的安装包,并按照安装向导操作。
-
安装完成后,打开命令提示符(CMD)或 PowerShell,输入
node -v
和npm -v
来检查 Node.js 和 npm 是否正确安装。
npm 和 npx 的区别
npm (Node Package Manager) 和 npx (Node Package Execute) 都是 Node.js 的包管理工具,但它们有不同的用途和功能:
主要区别
特性 | npm | npx |
---|---|---|
主要用途 | 包安装和管理 | 包执行 |
运行方式 | 需要先安装包才能使用 | 可以直接运行未安装的包 |
安装位置 | 安装到 node_modules 或全局 | 临时安装使用后删除 |
执行命令 | 不能直接执行包 | 可以直接执行包 |
详细解释
npm(Node 包管理器)
-
包管理工具:
-
主要用于安装、更新、删除和管理项目依赖
-
将包安装到项目的
node_modules
目录或全局位置
-
-
使用方式:
-
需要先安装包才能使用:
npm install <package>
-
然后通过 package.json 中的 scripts 或路径引用使用
-
-
局限性:
-
无法直接运行本地安装的包(除非配置 PATH 或使用 scripts)
-
全局安装的包虽然可以直接运行,但会污染全局环境
-
npx(Node 包执行)
-
包执行工具:
-
主要用于临时执行 npm 包
-
随 npm 5.2.0+ 版本自动安装
-
-
优势特性:
-
无需先安装包:可以临时下载并执行包,执行后删除
-
运行本地安装的包:自动查找本地 node_modules 中的可执行文件
-
避免全局安装:可以运行一次性命令而不污染全局环境
-
指定版本运行:可以指定运行特定版本的包
-
-
典型用例:
npx create-react-app my-app # 无需全局安装 create-react-app npx eslint@5.16.0 . # 使用特定版本的 eslint npx http-server # 临时运行一个 HTTP 服务器
使用场景对比
-
当你想安装一个依赖供长期使用时:
npm install lodash
-
当你想临时运行一个工具而不安装时:
npx create-react-app my-app
-
当你想测试不同版本的包时:
npx node@12 -v # 临时使用 Node.js 12.x 版本
总结
-
使用 npm 当你需要安装和管理项目依赖
-
使用 npx 当你需要临时执行某个 npm 包(特别是 CLI 工具)
-
npx 解决了全局安装包的问题,提供了更干净、更灵活的包执行方式
两者通常一起使用,npm 负责依赖管理,npx 负责便捷执行。
特别说明
1. npx 临时包的安装路径
在 Windows 系统下,npx
下载的临时包默认存储在 npm 的缓存目录 下的 _npx
文件夹中,具体路径通常是:
C:\Users\<你的用户名>\AppData\Local\npm-cache\_npx
如何查看 npx 缓存路径?
可以运行以下命令查看 npx
的存储位置:
npx --package=some-package -c "echo %APPDATA%\npm-cache\_npx"
或者直接查看 npm 的全局缓存路径:
npm config get cache
这会返回类似 C:\Users\<用户名>\AppData\Local\npm-cache
的路径,_npx
就在其中。
2. npx 什么时候会删除临时包?
npx
的临时包不会永久存储,但也不会立即删除。它的清理机制如下:
(1) 自动清理机制
-
默认情况下,npx 不会立即删除临时包,而是会缓存它们,以便下次快速执行。
-
npm 会定期清理旧的缓存(通常几周后),具体取决于
npm
的缓存管理策略。
(2) 手动清理
如果你想手动删除 npx
的缓存,可以运行:
npm cache clean --force
这会清除整个 npm 缓存(包括 npx
的临时包)。
3. 特殊情况:全局安装的包
如果某个包已经 全局安装(例如通过 npm install -g some-package
),npx
会优先使用全局安装的版本,而不会重新下载。
总结
情况 | 存储位置 | 删除时机 |
---|---|---|
临时包(未全局安装) | C:\Users\<用户名>\AppData\Local\npm-cache\_npx | 由 npm 自动清理(通常几周后) |
全局安装的包 | C:\Users\<用户名>\AppData\Roaming\npm\node_modules | 除非手动 npm uninstall -g ,否则不会删除 |
手动清理 | 运行 npm cache clean --force 可立即清除缓存 | - |
如果你希望 npx
完全不缓存,可以使用 --no-install
强制每次都重新下载(但一般不推荐):
npx --no-install create-react-app my-app
结尾
每天一个新技术,有没有在技术的海洋里扑腾的感觉,哇哈哈