所以我有这个我想用npx运行的节点包,命令如下:
npx @pika/init --help
这应该只是下载包,执行它,然后打印帮助。
然而,它所做的是尝试执行/sbin/init
.
我已经在运行最新版本 Arch 的桌面、运行 Ubuntu 18.04 的服务器和运行 CentOS 6.10 的另一台服务器上尝试过这个 - 所有这些都表现出相同的行为。
我也尝试过用引号括住参数或转义/
,这两种方法都不起作用。
任何人都知道这里发生了什么以及如何避免它?
谢谢!
哦,为了它的价值,我在所有三个系统上都使用 bash 作为我的 shell。
官方 npm 文档描述了这种行为:
“默认情况下,npx 将检查 $PATH 或本地项目二进制文件中是否存在并执行。如果没有找到,它将在执行之前安装。”
在您的情况下,这仅意味着本地安装的任何内容
$PATH
都优先于任何远程软件包。您可以使用该选项
--ignore-existing
忽略本地项目中$PATH
或本地项目中的现有二进制文件。这会强制npx
进行临时安装并使用最新版本。生成的命令如下所示: