什么是 npx

271 阅读1分钟

什么是 npx

一、概述

官方定义:从本地或远程 npm 包中运行命令。(docs.npmjs.com/cli/v8/comm…  

在 npm 中,如果要运行下载的依赖包中可执行的二进制文件,往往是在 package.json 文件的 scripts 部分,定义 npm run 脚本。如:


{

    'name': 'yourAppName',

    'version': '1.0.0',

    'scripts': {

        'command': 'node-modules/.bin/yourModule --version'

    }

}

运行时,只需要在 CLI 中执行:npm run command

二、主要应用

npm 从 5.2 版本开始,增加了 npx 命令,其主要的应用有两个方面:  

1、直接运行模块,在项目中用 npx 时,会自动在 node_modules/.bin 中与系统环境变量 $PATH 中,检查是否存在对应命令。所以上面 npm 同样的功能可以直接如下:


npx yourModule --version

2、如果 npx 运行的模块在本地找不到,则就会去下载这个模块,然后运行。执行完后并不会保存,而是会将对应的临时存储删掉。所以,之后在运行,又会去下载-->执行-->删除  

根据这个特点,对于一些不常用的模块,也就不用一直安装在本地,只在需要时用 npx 调用下就好了,比如 create-react-app  

正因为如此,npx 也是可以直接运行 github 上的模块源码的:


npx github:piuccio/cowsay

下面是 npx 语法(参考:www.npmjs.com/package/npx…


npx [options] <command>[@version] [command-arg]...

  


npx [options] [-p|--package <pkg>]... <command> [command-arg]...

  


npx [options] -c '<command-string>'

  


npx --shell-auto-fallback [shell]