这个是在 npmv5.2.0引入的一条命令(查看),引入这个命令的目的是为了提升开发者使用包内提供的命令行工具的体验。

为什么引入这个命令

举个例子,我们开发中要运行 parcel 命令来打包:parcel index.html,以前有这么几种方式:

  1. 全局安装 parcel,但有时不同项目使用不同版本,不允许使用全局包,只能考虑下面一些方法
  2. 使用 npm scripts,在 package.json 加一个 script
    "scripts": {
    "start": "parcel index.html"
    }

    然后执行 npm run start

  3. 将 node_modules 的可执行目录(.bin)加到 PATH 中
    alias npmx=PATH=$(npm bin):$PATH

    然后执行 npmx parcel index.html

  4. 指定可执行命令路径
    ./node_modules/.bin/parcel index.html

现在我们有了 npx 命令,就不在需要考虑以上方法了(其实npx 是对方法 3 的封装)。当我们执行 npx parcel index.html 时,会自动去./node_modules/.bin目录下搜索。

npx 还允许我们单次执行命令而不需要安装,例如:

npx create-react-app my-cool-new-app

这条命令会临时安装 create-react-app 包,命令完成后 create-react-app 会删掉,不会出现在 global 中。下次再执行,还是会重新临时安装。

npx命令找包顺序:先自动查找当前依赖包中的可执行文件,如果找不到,就会去 PATH 里找。如果依然找不到,就会帮你临时安装,执行完后再删除包。

特点:

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

最新文章

  1. 用JS实现的类似QQ密码的输入特效
  2. AJAX请求中含有数组解决办法
  3. EXTJS 4.2 资料 控件之Grid 添加行,编辑行,删除行
  4. EC读书笔记系列之5:条款9、条款10
  5. HDFS建筑与shell操作
  6. SpringMVC HelloWorld实例开发及部署
  7. MFC原理第一讲.MFC的本质.以及手工编写MFC的程序
  8. [JavaScript] 邮箱验证
  9. HTTP Error 500.22 - Internal Server Error 错误解决方案
  10. Maven整合Spring3.0+Mybatis3.2+Struts2.3+查找坐标+jar包依赖(五)
  11. P3420 [POI2005]SKA-Piggy Banks
  12. DX9 顶点缓存案例
  13. ActiveMQ——activemq的使用java代码实例(精选)
  14. LeetCode: Palindrome Partitioning II 解题报告
  15. 20155218 2016-2017-2 《Java程序设计》第8周学习总结
  16. java项目部署之后,Jar包中配置文件修改
  17. angular 自定义指令参数详解
  18. leetcode219
  19. OpenERP 7 picking order 继承需要注意的地方
  20. 深入 CommonJs 与 ES6 Module

热门文章

  1. JavaScript闭包简单学习
  2. Android学习笔记_14_对JSON格式数据的处理
  3. 如何关闭Eclipse智障的变量命名自动补全功能
  4. 纯css实现移动端横向滑动列表
  5. #leetcode刷题之路5-最长回文子串
  6. PP: 混合生产方式(MTO与MTS为例)(转)
  7. Graylog2日志服务安装配置
  8. 在Python中使用正则表达式去掉字符串里的html标签
  9. webpack3构建全面提速优化vue-cli
  10. Asp.Net Core使用Nginx实现反向代理