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

npx 与 npm 区别

一、 一句话总结区别

工具作用
npm安装包(比如下载 `@angular/cli`)
npx执行包里的命令(比如运行 `ng` 命令)

👉 就像:
`npm` 是“下载软件”
`npx` 是“运行软件”

 二、详细对比

特性npmnpx
全称Node Package ManagerNode Package execute
主要用途安装、管理依赖包执行包中的命令
是否需要先安装是(`npm install`)否(可直接运行)
执行命令❌不能直接运行 `ng`可以运行 `ng`、`create-react-app` 等
自动安装如果没安装,会临时下载并运行

三、 举个实际例子

  场景:你想创建一个 Angular 项目

❌ 旧方式(依赖全局安装)

npm install -g @angular/cli     # 先全局安装
ng new my-app                   # 再运行命令

问题:
- 全局只能有一个版本
- 容易版本冲突(比如你项目是 v15,但全局是 v10)

 ✅ 现代方式(使用 `npx`)

npx @angular/cli@latest new my-app

npx 会自动:
1. 检查本地有没有 `@angular/cli`
2. 没有?→ 临时下载 `@angular/cli@latest`
3. 运行 `ng new my-app`
4. 完成后可清理缓存

 无需全局安装,每个项目用自己需要的版本。

四、 npx 的强大功能

1. 无需全局安装,直接运行命令

npx create-react-app my-app
npx vue@3 create my-vue-app
npx http-server

 这些命令都不需要你提前 `npm install -g`。

2. 自动使用本地包(优先)

如果你的项目已经安装了 `@angular/cli`,运行:

npx ng serve

npx 会:
- 先找 `node_modules/.bin/ng`
- 找到就用本地的 CLI
- 找不到才去下载

前提是:确保你用的是项目指定的版本~

 3. 临时运行某个版本的命令

npx @angular/cli@10 ng new old-project --strict=false
npx @angular/cli@15 ng new new-project

可以同时测试不同版本的 CLI,互不干扰。

4. 运行一次性工具

npx serve                    # 启动一个静态服务器
npx cowsay "Hello!"          # 打印牛说话(趣味工具)
npx json-server --watch db.json  # 模拟 API

 用完就走,不用安装。

五、 `npx` vs `npm run` 的区别

命令说明
npx ng serve直接执行 `ng` 命令(从本地或远程)
npm run serve执行 `package.json` 中定义的 `scripts.serve` 脚本

例如:

"scripts": {"serve": "ng serve"
}

那么:

npm run serve

等价于:

npx ng serve

 推荐在 `package.json` 中定义脚本,然后用 `npm run` 调用。

六、 最佳实践(推荐)

场景做法
创建新项目 
npx @angular/cli@latest new my-app
启动项目npm run start`(或 `npx ng serve`)
构建项目npm run build
查看版本npx ng version
临时工具npx http-server

七、 总结

问题回答
npx 是什么用来执行npm 包中的命令
npx和 npm区别`npm` 是安装,`npx` 是运行
为什么要用 `npx`?避免全局安装、解决版本冲突、临时使用工具
npx ng` 安全吗安全,优先使用本地 CLI,不会受全局干扰
http://www.dtcms.com/a/481794.html

相关文章:

  • diffusion model(0.5) score-SDE 关于score function与noise的关系
  • leetcode724 寻找数组的中心下标
  • AI用户洞察新纪元:atypica.AI如何重塑商业决策逻辑
  • 彻底解决 Zip4j 解压中文文件名乱码问题(含混合编码与 Mac 特殊情况)
  • 河北农业网站建设公司凡科互动官网登录
  • 企业网站建设的成本构成吉林市网站建设招标
  • git push 报错 push rejected (一文读懂并解决)
  • 从缓存到分库分表:MySQL 高并发海量数据解决方案全解析
  • 苍穹外卖-缓存套餐 Spring Cache day07
  • 垂直电商网站建设方案wordpress主题开发时间
  • 报告工具更新!Word附注一键期末转期初
  • 优化A7M4相机直播图像传输:避免质量损失,实现端到端高保真
  • 平替MongoDB金仓多模数据库在电子证照国产化中的实践与优势
  • AWS WAF 深度体验:全新控制台,开启云原生WAF与CloudFront无缝联防新纪元
  • 【统计字母出现最多次数不分大小写按字典顺序输出】2022-11-9
  • 怎么查自己的网站备案编号本人已履行网站备案信息
  • 电子商务网站建设结论谷歌查询关键词的工具叫什么
  • Ubuntu 安装 SSH,并开启 root 远程登录
  • python学习之路(一)
  • 电源唐大师
  • QT-常用控件(四)-输入类
  • newstar2025 web week1week2题解(少一道)
  • 【C++】vector常用接口的使用
  • ES6 面试题及详细答案 80题 (62-80)-- 类与继承
  • 宁波高质量品牌网站设计厂家网络完全公司排名
  • 网站源码在线提取东莞市网站公司
  • C++中substr()函数详解
  • 乐迪信息:煤矿堆煤隐患难排查?AI摄像机实时监控与预警
  • Deep Dive into LLMs like ChatGPT 学习笔记
  • AI-大模型接入