强大的npx

avatar
前端开发工程师 @豌豆公主

本文所讲的npx是工作中非常有用的一个命令,使用很简单,接下来让一起学习一下。

npx是什么

首先看一下官网对于npx的说明:

npx is a very powerful command that's been available in npm starting version 5.2, released in July 2017.

用我毕生所学的英文知识自己翻译了一下:

npx是一个强大的命令。在2017年7月发布的5.2版本npm中开始使用。

npx有什么用

那为什么说它强大呢?它有什么过人之处呢?个人认为以下几点足够体现它的强大之处了。

  • 方便的运行本地命令

一般情况下我们在本地安装了一个模块xxx,如果想使用这个模块,则需要以下这样的命令:


./node_modules/.bin/xxx -V

使用时要写上命令所在的bin目录,会比较麻烦,那npx的产生就是为了解决这个问题。

如果使用npx,只需使用以下命令:


npx xxx -V

  • 减少模块的安装

大家可以回想一下,如果我们在代码中想使用一个模块,通常的做法是:


npm install -D xxx

其实我们也可以不用安装它,这就用到npx的两个特性:

1、npx会将模块下载到临时目录,使用后再删除;

2、通过使用@version可以使用不同版本的模块;


// 使用http-server

npx http-server

// 使用不同的版本

npx uglify-js@3.16.1

  • 切换不同版本的nodejs

这里的切换只是临时使用某个版本的nodejs运行脚本,相比于其他的Node版本管理器确实方便了一些:


npx node@10 -v

  • 通过URL运行任意代码片段

npx不仅限于运行发布于npm registry的包,你也可以直接运行在GitHub上的代码:


npx github:piuccio/cowsay hello

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

以上就是npx相关的使用方法,你学废了吗?