npx – execute npm package binaries

接触到npx是之前又一次装create-react-app的时候,之前为了用create-react-app的话都需要全局安装一下:

1
npm i -g create-react-app

现在的文档用的是

1
2
3
npx create-react-app my-app
cd my-app
npm start

于是就去查了一下,当时有些事情主要还是懒癌发作,一直没有记录,今天补上。

npx是用来运行npm包的一个工具(an npm package runner),这样说感觉非常模糊,下面直接给出例子说明npx可以做到什么。

安装

npx在npm5.2.0中默认附带按章了,如果版本不够没有安装npx的话,一种就是升级node版本,一种就是直接

1
npm i -g npx

全局安装。

使用

直接举例npx可以做到什么

1.npx一个主要作用就是可以执行局部安装的npx包。
之前如果需要在终端中直接使用一个npm包的话,需要全局安装,而且有时我们想运行的本地安装的最新版本。以前如果需要运行局部安装的npm包,可以通过编写npm script或者通过bash .node_modules/.bin/xxx这种直接指定路径的形式来实现。如果借助npx的话,已webpack为例,只需要npx webpack就可以直接运行本地安装的版本。

2.执行一次性调用
如果只需要用到一个包一次的话,使用npx就不需要npm全局安装这个包了。
npx webpack如果本地没有安装的话,就会使用全局安装的版本,如果全局也没有安装的话,npx就会去下载这个包然后再去运行这个包的命令。下载后这个包并没有被全局或者局部安装。

3.npx运行时可以指定node的版本

1
npx -p node-bin@6 -- node -v

个人比较常用的就这些了,其他的功能可以参照文档。

参阅: