【基础】Node.js 介绍、安装及npm 和 npx功能了解
前言
后面安装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
结尾
每天一个新技术,有没有在技术的海洋里扑腾的感觉,哇哈哈![]()
![]()
![]()
相关文章:
【基础】Node.js 介绍、安装及npm 和 npx功能了解
前言 后面安装n8n要用到,做一点技术储备。主要是它的两个工具:npm 和 npx。 Node.js介绍 Node.js 是一个免费的、开源的、跨平台的 JavaScript 运行时环境,允许开发人员在浏览器之外编写命令行工具和服务器端脚本,是一个基于 C…...
第53讲 农学科研中的AI伦理与可解释性——探索SHAP值、LIME等可解释工具与科研可信性建设之道
目录 一、为什么农学科研中需要“可解释AI”? ✅ 场景示例: 二、常见可解释AI工具介绍 1. SHAP(SHapley Additive exPlanations) 2. LIME(Local Interpretable Model-agnostic Explanations) 三、AI伦理问题在农学中的体现 🧭 公平性与偏见 🔐 数据隐私 🤖…...
助力网站优化利用AI批量生成文章工具提升质量
哎,有时候觉得写东西这事儿吧,真挺玄乎的。你看着那些大网站的优质内容,会不会突然冒出个念头——这些家伙到底怎么做到日更十篇还不秃头的?前阵子我蹲在咖啡馆里盯着屏幕发呆,突然刷到个帖子说现在用AI写文章能自动纠…...
Java语言的进化:JDK的未来版本
作为一名Java开发者,我们正处在一个令人兴奋的时代!Java语言正在以前所未有的速度进化,每个新版本都带来令人惊喜的特性。让我们一起探索JDK未来版本的发展方向,看看Java将如何继续领跑编程语言界!💪 &…...
SpringBootTest报错
Unable to find a SpringBootConfiguration, you need to use ContextConfiguration or … 解决方案:在SpringTest注解中添加属性(classes )填写启动类 如我的启动类是MainApplication.class javax.websocket.server.ServerContainer no…...
Flask + ajax上传文件(二)--多文件上传
Flask多文件上传完整教程 本教程将详细介绍如何使用Flask实现多文件上传功能,并使用时间戳为上传文件自动命名,避免文件名冲突。 一、环境准备 确保已安装Python和Flask pip install flask项目结构 flask_upload/ ├── app.py ├── upload/ # 上传文…...
w~视觉~合集3
我自己的原文哦~ https://blog.51cto.com/whaosoft/12327888 #几个论文 Fast Charging of Energy-dense Lithium-ion Batteries Real-time Short Video Recommendation on Mobile Devices Semantic interpretation for convolutional neural networks: What makes a ca…...
Redis安装及入门应用
应用资料:https://download.csdn.net/download/ly1h1/90685065 1.获取文件,并在该文件下执行cmd 2.输入redis-server-lucifer.exe redis.windows.conf,即可运行redis 3.安装redis客户端软件 4.安装后运行客户端软件,输入链接地址…...
NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve
//"dev": " NODE_OPTIONS--openssl-legacy-provider vue-cli-service serve" // 修改后(Windows 适用) "dev": "vue-cli-service serve --openssl-legacy-provider" 升级 Node.js 到 v14,确保依赖…...
如何在 Postman 中,自动获取 Token 并将其赋值到环境变量
在 Postman 中,你可以通过 预请求脚本(Pre-request Script) 和 测试脚本(Tests) 实现自动获取 Token 并将其赋值到环境变量,下面是完整的操作步骤: ✅ 一、创建获取 Token 的请求 通常这个请求…...
上篇:深入剖析 BLE 底层物理层与链路层(约5000字)
引言 在无线通信领域,Bluetooth Low Energy(BLE)以其超低功耗、灵活的连接模式和良好的生态支持,成为 IoT 与可穿戴设备的首选技术。要想在实际项目中优化性能、控制功耗、保证可靠通信,必须对 BLE 协议栈的底层细节有深入了解。本篇将重点围绕物理层(PHY)与链路层(Li…...
PostgreSQL 的 MVCC 机制了解
PostgreSQL 的 MVCC 机制了解 PostgreSQL 使用多版本并发控制(MVCC)作为其核心并发控制机制,这是它与许多其他数据库系统的关键区别之一。MVCC 允许读操作不阻塞写操作,写操作也不阻塞读操作,从而提供高度并发性。 一 MVCC 基本原理 1.1 M…...
【Pandas】pandas DataFrame dot
Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象(如 DataFrame、Series 或标量)的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…...
2025 年“泰迪杯”数据挖掘挑战赛B题——基于穿戴装备的身体活动监测问题分析
摘要 本文聚焦于基于穿戴设备采集的加速度计数据,深入研究志愿者在日常活动中的行为特征,构建了多个数学建模框架,实现从身体活动监测、能耗预测、睡眠阶段识别到久坐预警等多个目标。我们依托于多源数据融合与机器学习模型,对人体活动状态进行识别与分析,为健康管理、行…...
Vivado版本升级后AXI4-Stream Data FIFO端口变化
Vivado 2017.4版本中异步AXI4-Stream Data FIFO升级到Vivado 2018.3后,IP管脚会发生变化,2018.3版中没有m_axis_aresetn和axis_data_count。 async_axis_fifo_8_1024 async_axis_fifo_8_1024 ( .s_axis_aresetn (I_do0_rstn ), // input wire…...
Linux424 chage密码信息 gpasswd 附属组
https://chat.deepseek.com/a/chat/s/e55a5e85-de97-450d-a19e-2c48f6669234...
Git 恢复误删除的文件
由于一些操作,把项目中的大量文件删除了,还以为之前敲得代码都付之东流了,突然想起,我的项目使用git进行的版本管理,且一些更改都暂存在本地的仓库的,因此可以使用git来恢复存入仓库的文件 首先࿰…...
自定义指令简介及用法(vue3)
一介绍 防抖与节流,应用场景有很多,例如:禁止重复提交数据的场景、搜索框输入搜索条件,待输入停止后再开始搜索。 防抖 点击button按钮,设置定时器,在规定的时间内再次点击会重置定时器重新计时…...
关于Qt对Html/CSS的支持
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、原生控件二、QtWebEngine总结 前言 最近遇到了一些问题需要使用Qt加载Html发现一些特性不能使用,估计很多人也和我一样遇到这种情况。需要说明…...
海量数据笔试题--Top K 高频词汇统计
问题描述: 假设你有一个非常大的文本文件(例如,100GB),文件内容是按行存储的单词(或其他字符串,如 URL、搜索查询词等),单词之间可能由空格或换行符分隔。由于文件巨大&…...
Python函数与模块
简介 在Python编程中,函数和模块是实现代码复用、提高开发效率的核心机制。本文将结合理论与实例,解析Python函数与模块的核心知识点,帮助开发者打下基础。 一、函数 函数是一段可重复调用的代码块,通过参数传递实现灵活的逻辑…...
位运算题目:解码异或后的排列
文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:解码异或后的排列 出处:1734. 解码异或后的排列 难度 6 级 题目描述 要求 有一个整数数组 perm \texttt{perm} perm,是前…...
【Spring Boot】深入解析:#{} 和 ${}
1.#{} 和 ${}的使用 1.1数据准备 1.1.1.MySQL数据准备 (1)创建数据库: CREATE DATABASE mybatis_study DEFAULT CHARACTER SET utf8mb4;(2)使用数据库 -- 使⽤数据数据 USE mybatis_study;(3ÿ…...
linux:启动后,ubuntu屏幕变成红色了
屏幕启动后变成 红色背景 通常说明 显卡驱动出了问题,或者是 图形界面加载失败 使用了 fallback 模式。这种现象在 NVIDIA 驱动安装失败或显卡与驱动不兼容时常见。 🎯 先给你几个快速修复选项 ✅ 1. 进入 TTY 命令行界面 按下:Ctrl Alt …...
从实验室到产业端:解码 GPU 服务器的八大核心应用场景
一、深度学习与人工智能的基石 在深度学习领域,GPU 服务器的并行计算架构成为训练大规模模型的核心引擎 —— 传统 CPU 集群训练千亿参数模型需数月,而基于某国际知名芯片厂商 H100 的 GPU 服务器可将周期缩短至数周,国内科技巨头 910B 芯…...
java—12 kafka
目录 一、消息队列的优缺点 二、常用MQ 1. Kafka 2. RocketMQ 3. RabbitMQ 4. ActiveMQ 5. ZeroMQ 6. MQ选型对比 适用场景——从公司基础建设力量角度出发 适用场景——从业务场景角度出发 四、基本概念和操作 1. kafka常用术语 2. kafka常用指令 3. 单播消息&a…...
YOLOv8 涨点新方案:SlideLoss FocalLoss 优化,小目标检测效果炸裂!
YOLOv8优化秘籍:用SlideLoss和FocalLoss提升小目标检测精度(附代码实战) 📌 核心问题:YOLOv8在检测小物体时效果不够好? YOLOv8虽然是强大的目标检测模型,但在处理小物体或类别不平…...
数据库-数据类型、约束 和 DQL语言
标题目录 数据类型数字类型INT 型BIGINT 型DOUBLE 类型 字符类型定长字符串变长字符串 日期类型 约束主键约束非空约束唯一性约束检查约束外键约束 DQL 语言WHERE 子句连接多个条件IN (列表)NOT IN (列表)BETWEEN...AND...DISTINCT多字段去重 模糊查询NULL 值判断排序ÿ…...
verilog和system verilog常用数据类型以及常量汇总
int和unsigned 在 Verilog-2001 中,没有 int 和 unsigned 这样的数据类型。这些关键字是 SystemVerilog 的特性,而不是 Verilog-2001 的一部分。 Verilog-2001 的数据类型 在 Verilog-2001 中,支持的数据类型主要包括以下几种: …...
Dify升级-linux环境下使用zip离线安装方式部署升级
Dify安装时Linux服务器到github网络不好,git clone拉去不下来代码。使用本地windows电脑下载zip包形式上传进行了安装。但是随着dfiy版本升级,本地使用最新版本的,也需要进行下升级。参考升级指导以及自己环境情况,升级步骤如下。…...
