npx是一个工具,它是npm v5.2.0引入的一条命令(npx),是npm的一个包执行器,只要为了提高从npm注册表使用软件包的体验 。 npm使得它非常容易地安装和管理托管在注册表上的依赖项, npx使得使用CLI工具和其他托管在注册表。

就像npm极大地提升了我们安装和管理包依赖的体验,在npm的基础之上,npx让npm包中的命令行工具和其他可执行文件在使用上变得更加简单。它极大地简化了我们之前使用纯粹的npm时所需要的大量步骤。

区别1.一个永久存在(npm),一个临时安装(npx),用完后删除

例子:用创建一个react项目的对比 npm创建

   npm install -g create-react-appcreate-react-app test-app

npx创建

   npx create-react-app test-app

区别:npm他会在本地全局性的安装create-react-app,这个包会存储在node目录下面去。以后创建react项目直接执行create-react-app命令就可以了。
npx命令他会把create-react-app安装包临时安装上,等项目初始化完成以后,他就删除掉。

区别2.npx 会帮你执行依赖包里的二进制文件。

例子:执行webpack里面的文件 npm执行以下,结果是:6.9.0

npm i -D webpack ./node_modules/.bin/webpack -v

或者执行

npm i -D webpack`npm bin`/webpack -v

npx执行

npm i -D webpack
npx webpack -v

也就是说 npx 会自动查找当前依赖包中的可执行文件,如果找不到,就会去环境变量里面的 PATH 里找。如果依然找不到,就会帮你安装!

区别3.npx可以执行文件,但是npm不可以

npx 甚至支持运行远程仓库的可执行文件:

npx github:piuccio/cowsay hello

再比如 npx http-server 可以一句话帮你开启一个静态服务器!(第一次运行会稍微慢一些)

npx http-server

指定node版本来运行npm scripts:

npx -p node@8 npm run build

主要特点:
1、临时安装可执行依赖包,不用全局安装,不用担心长期的污染。
2、可以执行依赖包中的命令,安装完成自动运行。
3、自动加载node_modules中依赖包,不用指定$PATH。
4、可以指定node版本、命令的版本,解决了不同项目使用不同版本的命令的问题。

npm和npx的区别相关推荐

  1. npm cnpm npx nvm 区别

    1. npm npm 的全称是 Node Package Manager ,是 JavaScript 世界的包管理工具,并且是 Node.js 平台的默认包管理工具,在安装的 nodejs 的时候,n ...

  2. npm 和 cnpm 的区别

    目录 1. npm 和 cnpm 的区别 2. nrm的使用 3.npm介绍 4.选装cnpm 5.新建package.json文件 1. npm 和 cnpm 的区别 (1) 两者之间只是 node ...

  3. 了解和理解npm、npx、nvm、nrm

    提示:了解和理解npm.npx.nvm.nrm npm.npx.nvm.nrm 前言 一.npm 是什么?npx 呢? 1.npm 2.npx 二.什么是 nvm ? 1.是什么 2.使用场景 3.常 ...

  4. npm 和 cnpm 的区别,你真的搞懂了嘛

    1. npm 和 cnpm 的区别 相信很多人都不太明白 npm 和 cnpm 到底是什么东东, 为啥在国内要用 淘宝镜像使用 cnpm, (1) 两者之间只是 node 中包管理器的不同哟, (2) ...

  5. npm 和 npx 有什么区别?

    npx 是 npm v5.2.0 引入的一条命令( npx ),是一个 npm 包执行器.我们可以使用 npx 来执行各种命令. 主要有以下特点: 临时安装可执行依赖包,不用全局安装,不用担心长期的污 ...

  6. npm 装包时的区别 -D -S

    我们在使用npm install 安装模块或插件的时候,有两种命令把他们写入到 package.json 文件里面去,比如: --save-dev --save 在 package.json 文件里面 ...

  7. cnpm与npm指定有什么区别?

    CNPM跟NPM用法完全一致,只是在执行命令时将故宫改为CNPM. 因为故宫安装插件是从国外服务器下载,受网络影响大,可能出现异常,如果故宫的服务器在中国就好了,所以我们乐于分享的淘宝团队干了这事来自 ...

  8. npm -S -D的区别

    (1)npm install XXX -S -s 即--save(生产环境) 包名会被注册在package.json的dependencies里面,在生产环境下这个包的依赖依然存在 (2)npm in ...

  9. npm --save-dev --save 的区别

    npm install 在安装 npm 包时,有两种命令参数可以把它们的信息写入 package.json 文件,一个是npm install--save另一个是 npm install –save- ...

最新文章

  1. C++运行时类型信息 (RTTI)
  2. SimpliVity:我是你的完美选择,HPE!
  3. 大神们都在用的终端工具,多合一全能终端神器MobaXterm
  4. Micropython 红外防坠落小车实验教程
  5. python扩展包安装_python怎么安装扩展包
  6. OpenGL shader uniform的实例
  7. c语言数字灵活多变的访问形式_学习C语言你必须知道的事儿!
  8. 8086算术移位指令SAL和SAR
  9. hdoj1789:Doing Homework again (贪心)
  10. Numpy Binary operations
  11. 虚拟机、集群、数据中心虚拟化
  12. mybatis~动态SQL(1)
  13. Unity MRTK(一)
  14. 离散数学蕴含式的问题
  15. IDEA界面SVN回滚到历史指定版本
  16. oracle使用max提升效率,小小小的问题------关于count(*) 和 max(rownum) 效率问题
  17. 论文 结构图 用 visio
  18. 高中数学学习技巧,这几步你都做到了吗?
  19. lync显示无法找到服务器,Lync 中的用户联系人照片未正确显示
  20. matlab+whisker,Matlab Boxplot:使用特定的百分位数作为上部胡须或在手动上部胡须编辑后删除多余的异常值...

热门文章

  1. 关于文件访问无权限,无法枚举容器内对象,访问被拒绝等问题的傻瓜式解决办法,超级简单,小白必看!
  2. Android Studio配置SVN及使用
  3. 小米:从顺势而为到逆势而上
  4. 算法实践:数独(1)
  5. android手机普及度,为什么有人认为全面屏手机的普及率比较低,有何依据?
  6. smb服务器速度测试_SMB 文件服务器的性能优化
  7. 【kotlin】高阶函数详解
  8. Matrix Analysis With Mathematica
  9. 付亮解读:2016年Q2中国移动互联网发展报告背后的趋势
  10. 「训练营老学员参与第⑦期指南」