当前位置: 首页 > news >正文

简介NPM 和 NPX

npm 和 npx的基本使用条件

  • NPM(Node Package Manager)是 Node.js 的包管理工具,用于安装、管理和发布 JavaScript 包。NPX 是 NPM 5.2.0 及以上版本附带的工具,用于临时执行包中的命令。
  • npx 是 npm(Node.js 包管理器)的一部分,因此需要安装 Node.js 环境才能使用。Node.js 的安装包默认会包含 npm 和 npx。
  • npx 在执行时会从 npm 仓库下载所需的包(如果本地未安装)。因此需要稳定的网络连接才能正常使用。

npx 的内部逻辑

npx 的工作原理可以分为以下几个关键步骤:

  1. 查找本地或全局包 npx 会先检查命令是否存在于本地项目的 node_modules/.bin 或全局安装的包中。如果找到,直接执行。

  2. 临时下载并执行 如果本地或全局未安装该包,npx 会从 npm 仓库下载包的最新版本(或指定版本),存放在临时目录中,执行后自动清理(除非使用 --no-clean 选项)。

  3. 缓存机制 下载的包会被缓存在系统的 npm 缓存目录中(如 ~/.npm/_npx),避免重复下载。缓存会保留一段时间,但不会永久存储。

  4. 执行环境隔离 npx 会为每次临时执行创建一个独立的上下文,确保不会污染项目依赖或全局环境。

  5. 支持远程脚本 npx 可以直接运行 GitHub Gist 或其他远程脚本,例如:

    npx https://gist.github.com/user/script.js
    

 清理 npx 安装的包

npx 是 npm 5.2.0 及以上版本自带的工具,用于临时执行 npm 包中的命令。由于 npx 的设计目标是临时使用,它不会永久安装包到本地项目中。清理 npx 缓存或临时文件可以通过以下方法:

  1. 清理 npx 缓存 npx 会将下载的包缓存在系统中,可以通过以下命令清理缓存:

    npx clear-npx-cache
    

    或者直接删除 npm 的缓存目录(npx 共享 npm 的缓存):

    npm cache clean --force
    
  2. 手动删除临时文件 npx 的临时文件通常存储在系统的临时目录中,路径可能为:

    • Linux/macOS: /tmp~/.npm/_npx
    • Windows: %TEMP%C:\Users\<USER>\AppData\Local\npm-cache\_npx 可以直接删除这些目录中的文件。
  3. 定期清理 npm 缓存 由于 npx 依赖 npm 的缓存机制,定期运行以下命令可以清理旧文件:

    npm cache verify
    

NPM 和 NPX 的核心区别

NPM 的主要功能

NPM 主要用于包的安装和管理。通过 npm install 命令,可以将包下载到本地 node_modules 目录中,并在项目中引用。NPM 还支持版本控制、依赖管理和脚本执行(通过 package.json 中的 scripts 字段)。

  • 安装包
    npm install <package-name>
    将包安装到项目的 node_modules 目录中,并添加到 dependenciesdevDependencies

  • 全局安装
    npm install -g <package-name>
    将包安装到全局环境,供所有项目使用。

  • 运行脚本
    npm run <script-name>
    执行 package.json 中定义的脚本。


NPX 的主要功能

NPX 用于临时执行包中的命令,无需全局安装。它会在执行命令时检查本地 node_modules 和全局环境,如果未找到包,则自动下载并执行,执行完成后删除临时文件。

  • 临时执行包
    npx <package-name>
    无需全局安装即可运行包中的命令。

  • 执行本地未安装的包
    如果包未安装,NPX 会临时下载并执行,完成后清理。

  • 运行特定版本的包
    npx <package-name>@<version>
    指定包的版本运行。

  • 直接运行 GitHub 代码
    npx github:<username>/<repo>
    从 GitHub 仓库直接运行代码。


使用场景对比

  • NPM
    适合管理项目依赖,长期使用的包。例如,安装 reactlodash 等需要在项目中重复使用的库。

  • NPX
    适合一次性或临时任务。例如,快速运行脚手架工具(如 create-react-app)或测试某个包的功能。


示例对比

  1. 使用 NPM 运行 create-react-app
    需要先全局安装,再执行命令:

    npm install -g create-react-app
    create-react-app my-app
    
  2. 使用 NPX 运行 create-react-app
    无需安装,直接执行:执行完命令之后 create-react-app包自动从缓存目录中清除

    npx create-react-app my-app
    

总结

  • NPM 是包管理工具,用于安装和管理依赖。
  • NPX 是执行工具,用于临时运行包中的命令,避免全局安装的污染。
  • 在需要频繁使用某个包时,用 NPM 安装;在临时使用时,用 NPX 执行。
http://www.dtcms.com/a/516368.html

相关文章:

  • 16.MySQL 服务器配置与管理
  • Java集合框架整体分类(完整的集合框架关系)
  • LangChain最详细教程之使用概述(三)
  • 前端-ES6-11
  • jquery在网站开发实例运用网站优化 流量
  • Day 07 C++入门 之实践例子-----通讯录管理系统的设计与构建
  • Linux系统服务器时区设置与网络时间同步
  • 【POST请求】POST请求——详解
  • 【Linux】fork函数详解
  • 泰安市做网站的公司wordpress git项目
  • ON1 Photo RAW MAX(照片后期处理软件)
  • 天河网站建设哪家强哈尔滨市建设网站
  • 梦幻联动!卡尔曼滤波结合LSTM,精度提高19%!
  • 网站开发的硬件环境展览设计网站有哪些
  • 网站维护升级访问中网站基站的建设方案
  • 【JDK、JRE、JVM】
  • 临沂网站维护公司做网站怎么收费多少
  • Qoder 上线提示词增强功能,将开发者从“提示词”的负担中解放出来
  • 中国山东网站建设网站编辑人才队伍建设
  • FreeRTOS队列消息查询
  • 医院数字IP广播系统:基于内部局域网的分布式数字化医院IP广播
  • 中山骏域网站建设专家西部网站邮箱登录
  • FFmpeg --14-视频解码:h264解码为yuv
  • PixelShuffle原理
  • 昆明做网站价格网站屏蔽省份
  • 创建网站需要学什么知识2017民非单位年检那个网站做
  • LABVIEW依赖关系显示文件删除、移动或重命名,每次打开都要指定很多路径【解决方案】
  • 东莞网站建设seo浙江住房和城乡建设厅网站首页
  • MLOps 的CI/CD VS DevOps 的CI/CD
  • spark组件-spark sql-读取数据