npx的介绍

2023-11-13

npx 是 npm5.2.0版本新增的一个工具包,定义为npm包的执行者,相比 npm,npx 会自动安装依赖包并执行某个命令。

主要功能有2个

1. 临时安装软件包执行后删除软件包

例如: create-react-app 脚手架创建一个 react 项目

使用npm

# 第一步
npm i -g create-react-app

# 第二步
create-react-app my-react-app

使用npx

# 使用npx
npx create-react-app my-react-app
    1. npx 会在当前目录下的./node_modules/.bin里去查找是否有可执行的命令,
    1. 没有找到的话再从全局里查找是否有安装对应的模块,
    1. 全局也没有的话就会自动下载对应的模块,如上面的 create-react-app,npx 会将 create-react-app 下载到一个临时目录,用完即删,不会占用本地资源

npm自带npx,可以直接使用,如果没有可以手动安装一下:npm i -g npx

其他

1. 调用项目安装的模块

一般来说,调用 mocha ,只能在项目脚本和 package.json 的scripts字段里面, 如果想在命令行下调用,必须像下面这样。

# 在项目根目录
$ node-modules/.bin/mocha --version
# npx让项目内部安装的模块用起来更方便
npx mocha --version

npx 的原理:npx运行的时候,会到node_modules/.bin路径和环境变量 P A T H 里面,检查命令是否存在。由于 n p x 会检查环境变量 PATH 里面,检查命令是否存在。由于 npx 会检查环境变量 PATH里面,检查命令是否存在。由于npx会检查环境变量PATH,所以系统命令也可以调用。

// 等同于 ls
npx ls

注:Bash 内置的命令不在$PATH里面,所以不能用。比如,cd是 Bash 命令,因此就不能用npx cd。

2. npx命令参数
2-1 –no-install 告诉npx不要自动下载,也就意味着如果本地没有该模块则无法执行后续的命令。
npx --no-install create-react-app my-react-app
// not found: create-react-app
2-2 –ignore-existing 告诉npx忽略本地已经存在的模块,每次都去执行下载操作,也就是每次都会下载安装临时模块并在用完后删除。
2-3 -p 用于指定npx所要安装的模块,它可以指定某一个版本进行安装
# 从 npm 下载这个版本的 node,使用后再删掉。
npx -p node@12.0.0 node index.js
# 先指定安装node@12.0.0
# 然后再执行node index.js命令。
# 同时安装多个模块:
npx -p lolcatjs -p cowsay
2-3 -c 告诉npx所有命令都用npx解释
# 无 -c 则会报错,因为第一项命令cowsay hello默认有npx解释,但第二项命令localcatjs会有shell解释,此时lolcatjs并没有全局安装,所有就报错了
npx -p lolcatjs -p cowsay -c 'cowsay hello | lolcatjs'

将环境变量带入所要执行的命令。举例来说,npm 提供当前项目的一些环境变量,可以用下面的命令查看。

npm run env | grep npm_
-c参数可以把这些 npm 的环境变量带入 npx 命令。

npx -c ‘echo “$npm_package_name”’

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

npx的介绍 的相关文章

  • npm 安装 Angular/CLI 错误

    node v 8和 npm v5 正在尝试安装角度 cli从昨天开始全球范围内 每次都会遇到新的错误 Vipins Air vipingupta sudo npm install g angular cli npm 错误 代码 ETIMED
  • 没有找到任务运行程序配置?

    我有 新安装的 Visual Studio Professional 2017 V 15 9 4 视觉工作室解决方案 https learn microsoft com en us visualstudio ide solutions an
  • NPM ci 之后的 NPM 修剪

    我有一个天真的问题 在 npm ci 之后进行 npm prune 是否有兴趣 对我来说 npm ci 似乎就足够了 不是吗 提前致谢 由于 npm ci 在安装之前删除了现有的 node modules 因此无需修剪 Npm prune
  • 有没有办法让 npm install (命令)在代理后面工作?

    阅读有关代理变量的信息 npmrc文件 但它不起作用 尽量避免手动下载所有需要的包并安装 我这样解决了这个问题 我运行这个命令 npm config set strict ssl false 然后将 npm 设置为使用 http 而不是 h
  • npm install [package] 删除软件包

    npm install package 命令正在删除其他软件包 我必须运行 npm install 命令来重新安装它们 这是一项繁琐的任务 所有包都记录在 package json 和 package lock json 文件中 如果我 n
  • NPM 全局标志在 Windows 上似乎不一致

    从控制台运行 gt npm root g 或者以编程方式 var npm require npm npm load null function err npm npm config set global true npm root 我在 W
  • 使用 npm API 检索带有版本的私有 npm 包列表,可能吗?

    我在 npmjs org 上有一个私有 npm 注册表 其中包含几个私有 npm 包 我们正在转向内部私人 npm 注册表 verdaccio 长话短说 使用我们的 AWS 基础设施 verdaccio 服务器可能会因多种原因而被重建 主要
  • 安装 npm 包时自动安装类型定义

    有没有办法配置npm以这样的方式 每当我安装一个包时 它都会 检查里面是否有类型定义 如果没有 请尝试安装 types PACKAGE与 save dev flag 理想情况下 我希望这能够自动发生 作为插件或其他东西 而不需要编写限制 A
  • DeprecationWarning:当我将脚本移动到另一台服务器时,由于安全和可用性问题,Buffer() 已被弃用

    当脚本移动到其他服务器时出现错误 节点 15707 DEP0005 DeprecationWarning 由于安全和可用性问题 Buffer 已被弃用 请改用 Buffer alloc Buffer allocUnsafe 或 Buffer
  • gyp ERR,Npm 无法获取本地颁发者证书

    我正在致力于 Windows 10 的全新安装 唯一的事情是我安装了 cygwin 以在 cmd 中获取 unix 命令 当我打字时npm install g angular cli它下载了必要的文件 但我收到错误 gyp ERR conf
  • 找不到模块:无法解析 @google-cloud/storage 上的“fs”

    得到Module not found Can t resolve fs 尝试从 GCP Storage 列出存储桶时出错 import Storage from google cloud storage const googleCloud
  • Node.js“需要”其他文件而不需要命名空间

    我正在将代码库从 100 浏览器端切换为浏览器端和服务器端的混合 我发现的问题是 要让我的代码使用 node js 运行 我必须使用模块 为了将我的代码变成模块 需要对几乎所有代码进行巨大的重构 原因是在浏览器上 许多功能是跨文件使用的 而
  • 未找到命令“ember”

    看来我搞砸了 ember cli 安装 我已经使用 sudo 安装了 npm 但是在阅读了 npm 上 ember cli 和 sudo 的一些问题后 我按照此处的说明卸载并重新安装https gist github com isaacs
  • 使用 NPM 安装 Bootstrap 4 alpha [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 如何使用 NPM 专门安装 Bootstrap 4 Alpha 使用npm install boots
  • 角度代理配置不起作用

    我不明白我错在哪里 附 已经尝试通过这个答案修复但仍然不起作用 Angular CLI 代理到后端不起作用 https stackoverflow com questions 39809008 angular cli proxy to ba
  • Laravel Homestead 中 npm 安装错误有解决方案吗?

    Windows 10 家园 虚拟盒6 0 8 流浪者2 2 5 节点 v12 5 0 npm v6 10 1 我想做的就是在新安装的 Laravel 应用程序中执行 npm install 命令 但我不断收到错误 经过两天的谷歌搜索并尝试了
  • 安装后如何使用 npm 包 (chart.js)?

    我正在制作一个练习 Laravel 站点 并且我已经通过 npm install 安装了 Chart js 这是一个愚蠢的问题 但现在我如何从这里使用它 或通过 npm 安装的任何东西 这些文件安装在节点模块文件夹中 我应该在页眉中使用标签
  • “cross-env”不被识别为内部或外部命令,

    伙计们 你们能帮我解决这个问题吗 我在为我的 Laravel Mix 运行 npm run dev 时遇到问题 我点击了下面的链接 但仍然存在错误 我的操作系统有问题吗 我尝试删除节点模块 运行npm install global cros
  • 由于预发布,Node 应用程序无法运行

    即使安装成功 我也会安装无效的软件包 顺便说一句 这个问题与答案相关 关于版本控制的问题 https stackoverflow com questions 27628153 npm versioning how does this edg
  • “submodule”似乎是一个 git 命令,但我们无法执行它

    我已经克隆了一个 git 存储库 它是一个 Angular 7 和 NET Core 应用程序 项目中一切正常 但是当我尝试恢复 npm 包时 出现以下错误 Microsoft TeamFoundation Team Explorer Gi

随机推荐

  • 本地搭建web服务器、个人博客并发布公网访问

    文章目录 前言 1 安装套件软件 2 创建网页运行环境 指定网页输出的端口号 3 让WordPress在所需环境中安装并运行 生成网页 4 装修 个人网站 5 将位于本地电脑上的网页发布到公共互联网上 前言 在现代社会 网络已经成为我们生活
  • Spring Boot + Vue的网上商城之登陆认证

    Spring Boot Vue的网上商城之登陆认证 本篇博客介绍了如何使用Spring Boot和Vue来实现网上商城的登陆认证功能 下面是本文的主要内容总结 后端实现 创建Spring Boot项目 并添加Spring Security和
  • 为什么spring单例模式可以支持多线程并发访问

    为什么spring单例模式可以支持多线程并发访问 1 spring单例模式是指 在内存中只实例化一个类的对象 2 类的变量有线程安全的问题 就是有get和set方法的类成员属性 执行单例对象的方法不会有线程安全的问题 因为方法是磁盘上的一段
  • Vulnhub靶机-BLACKLIGHT

    项目地址 http download vulnhub com blacklight BLACKLIGHT ova 靶机渗透 网络选择桥接模式 使用命令 arp scan l nmap 192 168 0 130 使用dirb遍历网站目录结构
  • Linux自学笔记

    Linux自学笔记 06 常用命令 文件目录类 Linux自学笔记 01 文件系统和目录结构 Linux自学笔记 02 VIM编辑器的安装与使用 Linux自学笔记 03 Linux网络配置 Linux自学笔记 04 远程登录 Linux自
  • 高速模数转换器(ADC)的INL/DNL测量

    摘要 尽管积分非线性和微分非线性不是高速 高动态性能数据转换器最重要的参数 但在高分辨率成像应用中却具有重要意义 本文简要回顾了这两个参数的定义 并给出了两种不同但常用的测量高速模数转换器 ADC 的INL DNL的方法 近期 许多厂商推出
  • 微信小程序 ---- 【invalid credential, access_token is invalid】

    报错返回 errcode 40001 errmsg invalid credential access token is invalid or not latest rid 6004f3da 1529ba72 5c345f67 报错原因 a
  • oled拼接屏有哪些安装方法?

    嘉峪关是一个历史悠久的城市 也是一个旅游胜地 为了更好地展示城市的文化和旅游资源 嘉峪关市政府决定在市区的重要场所安装oled拼接屏 oled拼接屏是一种高清晰度的显示屏 具有高亮度 高对比度 高色彩饱和度等优点 它可以将图像和视频以更清晰
  • qtp的基本使用方法(1)

    1 action qtp为每一个action生成相应的测试文件和目录 对象库也是和action绑定的 用action 来划分和组织测试流程 编辑action 修改action的名字 action properties 增加action in
  • StartSSL CA证书签名 和 Tomcat Https访问 全过程说明

    第1章 准备工作 IP地址 外网服务器的IP 如X X 47 xx 作用 1 解析域名 2 部署Tomcat7 域 名 将域名 如samuscasting cn 解析 映射到外网IP 注 1 记住购买域名所使用的邮箱 原因 认证机构对域名做
  • QGIS编译(跨平台编译)之五十一:MacOS环境下安装Python、pyqt5、pyqt5-tools等

    目录 1 安装背景 2 卸载Python 3 下载Python3 9 4 安装Python3 9 5 安装pyqt5 6 安装pyqt5 tools
  • 微信小程序 分享图片大小处理

    1 在分享的page 添加 canvas 标签
  • c++单链表的创建、输出、插入、删除操作

    混子来了 单链表的创建 首先单链表的定义就不再赘述了 本文利用带头节点 尾插法的方法进行创建 同时注意头节点在此的重要性 即所有操作都要通过头节点来实现 头节点的值绝对不能被改变 结点的定义 struct ListNode 定义节点 int
  • 最小的前端开发框架 Vanilla JS

    刚刚在看前端文章的时候看到了Vanilla JS 这是什么高端框架 打开了谷鸽google搜索 果然是发现了不得了的技术 VanillaJS是库 框架免费javascript的术语 它有时具有讽刺意味地被称为库 这是为那些可能会盲目使用不同
  • HTML5 Web Audio Api 声音登陆

    之前最早时候给过一个识别hz的demo 今天讲那个demo结合上一篇说的振荡器 做了个声音登录的小demo 原理就是2w hz人听不见 其实1w9左右就很轻微了 直接上代码 识别器 限电脑 span style font size 18px
  • 多线程:获取和设置线程名称

    获取线程名称 第一种方式 使用Thread类中的getName方法 有些线程因为并不是继承Thread的 不能直接使用getName 比如main线程 此时需要先使用Thread类中的currentThread方法 这是一个静态方法 获取当
  • List对象集合如何自定义排序

    List对象集合自定义排序 最近开发个人博客项目的时候 遇到了一个难点 如何排序分类Type集合呢 Type java Data public class Type private Long id private String name p
  • Vue.js--组件注册(全局注册、局部注册)、表行组件、组件中的data、组件数据的共享问题详解

    组件 组件 Component 是 Vue js 最强大的功能之一 组件可以扩展 HTML 元素 封装可重用的代码 组件系统让我们可以用独立可复用的小组件来构建大型应用 几乎任意类型的应用的界面都可以抽象为一个组件树 组件注册 组件与Vue
  • angular随笔 之angular添加ng-zorro-antd组件时相关问题

    最近新建angular项目在添加ng zorro antd组件时9 0 0版本以上 会出现无法添加ng zorro antd组件 一添加ng add ng zorro antd就会报如下错误 Error ng zorro antd 0 0
  • npx的介绍

    npx 是 npm5 2 0版本新增的一个工具包 定义为npm包的执行者 相比 npm npx 会自动安装依赖包并执行某个命令 主要功能有2个 1 临时安装软件包执行后删除软件包 例如 create react app 脚手架创建一个 re