【基础】Node.js 介绍、安装及npm 和 npx功能了解

news2025/4/25 9:01:47

前言

后面安装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 使用)
TypeScriptJavaScript 的超集ts-node 运行)

 Note.js安装 

使用官方网站安装包

  1. 访问 Node.js 官网。

  2. 下载适合你系统的安装包(推荐 LTS 版本,即长期支持版本)。

  3. 运行下载的安装包,并按照安装向导操作。

  4. 安装完成后,打开命令提示符(CMD)或 PowerShell,输入 node -v 和 npm -v 来检查 Node.js 和 npm 是否正确安装。

 


npm 和 npx 的区别

npm (Node Package Manager) 和 npx (Node Package Execute) 都是 Node.js 的包管理工具,但它们有不同的用途和功能:

主要区别

特性npmnpx
主要用途包安装和管理包执行
运行方式需要先安装包才能使用可以直接运行未安装的包
安装位置安装到 node_modules 或全局临时安装使用后删除
执行命令不能直接执行包可以直接执行包

详细解释

npm(Node 包管理器)

  1. 包管理工具

    • 主要用于安装、更新、删除和管理项目依赖

    • 将包安装到项目的 node_modules 目录或全局位置

  2. 使用方式

    • 需要先安装包才能使用:npm install <package>

    • 然后通过 package.json 中的 scripts 或路径引用使用

  3. 局限性

    • 无法直接运行本地安装的包(除非配置 PATH 或使用 scripts)

    • 全局安装的包虽然可以直接运行,但会污染全局环境

npx(Node 包执行)

  1. 包执行工具

    • 主要用于临时执行 npm 包

    • 随 npm 5.2.0+ 版本自动安装

  2. 优势特性

    • 无需先安装包:可以临时下载并执行包,执行后删除

    • 运行本地安装的包:自动查找本地 node_modules 中的可执行文件

    • 避免全局安装:可以运行一次性命令而不污染全局环境

    • 指定版本运行:可以指定运行特定版本的包

  3. 典型用例

    npx create-react-app my-app  # 无需全局安装 create-react-app
    npx eslint@5.16.0 .         # 使用特定版本的 eslint
    npx http-server             # 临时运行一个 HTTP 服务器

使用场景对比

  1. 当你想安装一个依赖供长期使用时

    npm install lodash
  2. 当你想临时运行一个工具而不安装时

    npx create-react-app my-app
  3. 当你想测试不同版本的包时

    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

结尾

每天一个新技术,有没有在技术的海洋里扑腾的感觉,哇哈哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2342285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

助力网站优化利用AI批量生成文章工具提升质量

哎&#xff0c;有时候觉得写东西这事儿吧&#xff0c;真挺玄乎的。你看着那些大网站的优质内容&#xff0c;会不会突然冒出个念头——这些家伙到底怎么做到日更十篇还不秃头的&#xff1f;前阵子我蹲在咖啡馆里盯着屏幕发呆&#xff0c;突然刷到个帖子说现在用AI写文章能自动纠…

SpringBootTest报错

Unable to find a SpringBootConfiguration, you need to use ContextConfiguration or … 解决方案&#xff1a;在SpringTest注解中添加属性&#xff08;classes &#xff09;填写启动类 如我的启动类是MainApplication.class javax.websocket.server.ServerContainer no…

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安装及入门应用

应用资料&#xff1a;https://download.csdn.net/download/ly1h1/90685065 1.获取文件&#xff0c;并在该文件下执行cmd 2.输入redis-server-lucifer.exe redis.windows.conf&#xff0c;即可运行redis 3.安装redis客户端软件 4.安装后运行客户端软件&#xff0c;输入链接地址…

NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve

//"dev": " NODE_OPTIONS--openssl-legacy-provider vue-cli-service serve" // 修改后&#xff08;Windows 适用&#xff09; "dev": "vue-cli-service serve --openssl-legacy-provider" 升级 Node.js 到 v14&#xff0c;确保依赖…

上篇:深入剖析 BLE 底层物理层与链路层(约5000字)

引言 在无线通信领域,Bluetooth Low Energy(BLE)以其超低功耗、灵活的连接模式和良好的生态支持,成为 IoT 与可穿戴设备的首选技术。要想在实际项目中优化性能、控制功耗、保证可靠通信,必须对 BLE 协议栈的底层细节有深入了解。本篇将重点围绕物理层(PHY)与链路层(Li…

2025 年“泰迪杯”数据挖掘挑战赛B题——基于穿戴装备的身体活动监测问题分析

摘要 本文聚焦于基于穿戴设备采集的加速度计数据,深入研究志愿者在日常活动中的行为特征,构建了多个数学建模框架,实现从身体活动监测、能耗预测、睡眠阶段识别到久坐预警等多个目标。我们依托于多源数据融合与机器学习模型,对人体活动状态进行识别与分析,为健康管理、行…

Linux424 chage密码信息 gpasswd 附属组

https://chat.deepseek.com/a/chat/s/e55a5e85-de97-450d-a19e-2c48f6669234

自定义指令简介及用法(vue3)

一介绍 防抖与节流&#xff0c;应用场景有很多&#xff0c;例如&#xff1a;禁止重复提交数据的场景、搜索框输入搜索条件&#xff0c;待输入停止后再开始搜索。 防抖 点击button按钮&#xff0c;设置定时器&#xff0c;在规定的时间内再次点击会重置定时器重新计时&#xf…

【Spring Boot】深入解析:#{} 和 ${}

1.#{} 和 ${}的使用 1.1数据准备 1.1.1.MySQL数据准备 &#xff08;1&#xff09;创建数据库&#xff1a; CREATE DATABASE mybatis_study DEFAULT CHARACTER SET utf8mb4;&#xff08;2&#xff09;使用数据库 -- 使⽤数据数据 USE mybatis_study;&#xff08;3&#xff…

从实验室到产业端:解码 GPU 服务器的八大核心应用场景​

一、深度学习与人工智能的基石​ 在深度学习领域&#xff0c;GPU 服务器的并行计算架构成为训练大规模模型的核心引擎 —— 传统 CPU 集群训练千亿参数模型需数月&#xff0c;而基于某国际知名芯片厂商 H100 的 GPU 服务器可将周期缩短至数周&#xff0c;国内科技巨头 910B 芯…

java—12 kafka

目录 一、消息队列的优缺点 二、常用MQ 1. Kafka 2. RocketMQ 3. RabbitMQ 4. ActiveMQ 5. ZeroMQ 6. MQ选型对比 适用场景——从公司基础建设力量角度出发 适用场景——从业务场景角度出发 四、基本概念和操作 1. kafka常用术语 2. kafka常用指令 3. 单播消息&a…

数据库-数据类型、约束 和 DQL语言

标题目录 数据类型数字类型INT 型BIGINT 型DOUBLE 类型 字符类型定长字符串变长字符串 日期类型 约束主键约束非空约束唯一性约束检查约束外键约束 DQL 语言WHERE 子句连接多个条件IN (列表)NOT IN (列表)BETWEEN...AND...DISTINCT多字段去重 模糊查询NULL 值判断排序&#xff…

Dify升级-linux环境下使用zip离线安装方式部署升级

Dify安装时Linux服务器到github网络不好&#xff0c;git clone拉去不下来代码。使用本地windows电脑下载zip包形式上传进行了安装。但是随着dfiy版本升级&#xff0c;本地使用最新版本的&#xff0c;也需要进行下升级。参考升级指导以及自己环境情况&#xff0c;升级步骤如下。…

基于SpringBoot+Vue的影视系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;影视推荐系统当然不能排除在外。影视系统是在实际应用和软件工程的开发原理之上&#xff0c;运用Java语言以及Spring Boot、VUE框架进行开…

搭建Stable Diffusion图像生成系统实现通过网址访问(Ngrok+Flask实现项目系统公网测试,轻量易部署)

目录 前言 背景与需求 &#x1f3af; 需求分析 核心功能 网络优化 方案确认 1. 安装 Flask 和 Ngrok 2. 构建 Flask 应用 3. 使用 Ngrok 实现内网穿透 4. 测试图像生成接口 技术栈 实现流程 优化目标 实现细节 1. 迁移到Flask 2. 持久化提示词 3. 图像下载功能 …

差分信号抗噪声原理:

差分信号抗噪声原理&#xff1a; 差分信号除了能很好地解决发送和接收参考点电位不同的问题外&#xff0c;差分信号的另一个重要优势就是在一定条件下其抗干扰能力比单端信号更强。对于单端信号传输&#xff0c;外界对它的干扰噪声直接叠加在信号上&#xff0c;接收端直接检测输…

6 种AI实用的方法,快速修复模糊照片

照片是我们记录生活的重要方式。但有时&#xff0c;由于各种原因&#xff0c;照片会变得模糊&#xff0c;无法展现出我们想要的效果。幸运的是&#xff0c;随着人工智能&#xff08;AI&#xff09;技术的发展&#xff0c;现在有多种方法可以利用 AI 修复模糊照片&#xff0c;让…

从入门到精通【MySQL】视图与用户权限管理

文章目录 &#x1f4d5;1. 视图✏️1.1 视图的基本概念✏️1.2 试图的基本操作&#x1f516;1.2.1 创建视图&#x1f516;1.2.2 使用视图&#x1f516;1.2.3 修改数据&#x1f516;1.2.4 删除视图 ✏️1.3 视图的优点 &#x1f4d5;2. 用户与权限管理✏️2.1 用户&#x1f516;…

C++中的next_permutation全排列函数

目录 什么是全排列用法实现原理自定义比较函数 注意事项相关题目1.AB Problem2.P1088 火星人 什么是全排列 全排列是指从一组元素中按照一定顺序(按字典序排列&#xff09;取出所有元素进行排列的所有可能情况。 例如&#xff0c;对于集合{1,2,3}&#xff0c;它的全排列包括&a…