npx教程

简介: npx教程

npx 主要用于调用项目内部安装的模块,若本地找不到模块,就会下载同名模块。

比如,本地没有安装http-server模块,下面的命令会自动下载该模块,在当前目录启动一个 Web 服务。

npx http-server

安装(通常安装了node.js即可使用)

npm 从5.2版开始,增加了 npx 命令,万一不能用,就要手动安装一下。

npm install -g npx

使用场景一:调用项目内部安装的模块

如使用npm安装了插件Mocha ,查看Mocha的版本,需用命令

# 项目的根目录下执行
node-modules/.bin/mocha --version

改用npx

npx mocha --version

即npx可以直接调用项目内部安装的模块!

使用场景二:避免全局安装模块

默认  create-react-app 这个模块是全局安装

npx create-react-app my-react-app

npx 将create-react-app下载到一个临时目录,使用以后再删除。以后再次执行上面的命令,会重新下载create-react-app

使用场景三:执行 GitHub 源码

 
# 执行 Gist 代码
$ npx https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32
 
# 执行仓库代码
$ npx github:piuccio/cowsay hello

注意,远程代码必须是一个模块,即必须包含package.json和入口脚本。

使用场景四:使用不同版本的 node

利用 npx 可以下载模块这个特点,可以指定某个版本的 Node 运行脚本

 
$ npx node@0.12.8 -v
v0.12.8

上面命令会使用 0.12.8 版本的 Node 执行脚本。原理是从 npm 下载这个版本的 node,使用后再删掉。

某些场景下,这个方法用来切换 Node 版本,要比 nvm 那样的版本管理器方便一些。

--no-install参数——强制使用本地模块,不下载远程模块

npx --no-install 模块名

--ignore-existing参数——忽略本地的同名模块,强制安装使用远程模块

npx --ignore-existing 模块名

-p 参数——指定 npx 所要安装的模块

 
$ npx -p node@0.12.8 node -v 
v0.12.8

上面命令先指定安装node@0.12.8,然后再执行node -v命令。

-p参数对于需要安装多个模块的场景很有用。

 
$ npx -p lolcatjs -p cowsay [command]

-c 参数 —— 所有命令都用 npx 解释

  • 功能1:将所有命令都用 npx 解释
  • 功能2:将环境变量带入所要执行的命令

例如执行下方命令,只有第一个可执行项会使用 npx 安装的模块,后面的可执行项还是会交给 Shell 解释。

 
$ npx -p lolcatjs -p cowsay 'cowsay hello | lolcatjs'
# 报错

上面代码中,cowsay hello | lolcatjs执行时会报错,原因是第一项cowsay由 npx 解释,而第二项命令localcatjs由 Shell 解释,但是lolcatjs并没有全局安装,所以报错。

改用-c参数就可以

 
$ npx -p lolcatjs -p cowsay -c 'cowsay hello | lolcatjs'

npm 提供当前项目的一些环境变量,可以用下面的命令查看。

 
$ npm run env | grep npm_

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

 
$ npx -c 'echo "$npm_package_name"'


目录
相关文章
|
29天前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
23248 65
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
3月前
|
人工智能 NoSQL Redis
LangGraph 入门:用图结构构建你的第一个多智能体工作流
LangGraph 是面向多智能体系统的图编排框架,以有向状态图替代线性链式调用。通过节点(智能体)、边(条件/静态跳转)和类型化共享状态三者解耦,天然支持分支、循环、并行与汇合;内置检查点、原子状态更新与Reducer机制,保障一致性、可调试性与容错恢复能力。
2858 1
|
4月前
|
人工智能 自然语言处理 安全
Claude Code 插件登陆 VS Code:开发者迎来 AI 编程新利器
Anthropic正式发布Claude Code——VS Code官方插件,支持多语言智能补全、代码解释、错误诊断与安全重构。隐私优先、长上下文(200K tokens)处理能力强,显著优于Copilot的可解释性与代码质量,已获开发者广泛好评。(239字)
7861 5
|
2月前
|
人工智能 自然语言处理 API
从养龙虾到管龙虾:OpenClaw+DeerFlow2 可控智能体落地|阿里云+本地部署+大模型配置指南
在AI智能体快速普及的今天,OpenClaw(Clawdbot)凭借自然语言驱动、自动任务拆解、工具调用与开箱即用的体验,被大量用户称作“养龙虾”。但在科研、实验室、数据处理等真实生产场景中,单纯“能跑起来”远远不够:流程不可控、结果不稳定、出错难追溯、数据无法本地化,使得智能体难以真正落地。
1505 0
|
6月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
50661 11