npx 是否寻找全局安装的包?

Does npx look for globally installed packages?

我正在使用 Node.js 10.1.0 和 npm 6.0.0。

我已经安装了一个包含 npm install -g example-package

的软件包

npx找吗? npx -p example-package 怎么样,它只在 npm 注册表上查找吗?

NPX 包含在 NPM 5.2 中,它会在您的 local/node_modules 文件夹中查找以避免版本与全局安装的软件包版本不匹配

如果包不可用,npx 将自动安装 npm 包,它不会寻找全局安装的包

检查此 link 以供参考 - https://blog.scottlogic.com/2018/04/05/npx-the-npm-package-runner.html

Node.js v10 中(npm@6 可能更晚);

npx 将在局部查找后查找全局二进制文件。

但是我们可以使用 -p 选项来防止全局查找,例如:

npx -p name_of_module

Note npx is an npm package runner that executes a <command> (e.g. npm package binaries) by FIRST looking in local node_modules/.bin directory.

So even if we remove it from package.json, as long as binary exists in node_modules/.bin, npx will continue using local.