npx 与 npm exec
通过 npx 二进制文件运行时,必须在任何位置参数之前设置所有标志和选项。通过 npm exec 运行时,可以使用双连字符 -- 标志来禁止 npm 解析应发送到执行命令的开关和选项。
When run via the npx binary, all flags and options must be set prior to any positional arguments. When run via npm exec, a double-hyphen -- flag can be used to suppress npm's parsing of switches and options that should be sent to the executed command.
DS4WNTsR8MktquASVQ7GVKNtCKPPOJr6oTK2zWTSykONRYhxAQyu2oTzJnYy6BfF
$ npx foo@latest bar --package=@npmcli/foo
kgqwusSNNaonz1d0NTjrUMVqwvo+Y9jMLUh3WNEkOdGsUnbsJ/tyqmn9M+FCIPx+ELqtazRQjeHh/LZaXmTZ3zz1g/uNkFHXserMmg1o4ejF+HSEOkRR/cdvx4r2643NsVaWwiUrenMF7yaVryMSr8XRgNNcVwyNGZyE7P4r2ehkHOH8apeWZV0yv4SgQY2B81L6J8joM3u2Vb/Aln+BBXFId0NDAM4T9m6CVtL6Fz+q4+x3RGW3Dq8bvcZnKwZqWYBVV0C85qby9ZmpuisJcw==
$ foo bar --package=@npmcli/foo
T+D6yFhYRQPPzvt8URqaBMQDpq5g9jvZw3g16c/p06jRldtrXiNhdM92efZmovypcSeU9O/3ZwUYiKvMs9K5Mx2BqpVdOttv8XguIoqrKh6KDcGTv3psE+8V3z3RBr1ucPtg9JUKCwRgeznOgIZrNrvmSuSdb6A05ONZB9J/pgpgE4B4J/abIdadekT9Mm8g5WV6QV898/KNfxFa5MC0XjPqK4Lmk583VXWtY18mB4do9CUWmHSZQbM+VtlwvOEoTWZeZUQE1kq0eC7mZDZNMeib2P3UmA5Dl/NqKRUwWUNh0U9mXxcsrudwvxoeEdj62HpAiMr/+LKODNdZaTsKUx48VqotrdxAH1yB4f9GKew=
wbynhfc/H2xwQvyiQ1Sc+ze4qTK+/xSEuT5nYLkdPo+gw/wnprQ8g7blSgq4WMinKdJQ0+v8eBIlRIKMm+rl3JhMZXK0/rfGLJGc84RKLStAl7wptStqQMbNfzaO8w9xlbPoljMvsEAlYAliXF1XCSQwUbRaUiCauHFsuMWrKJJP2FKAmaaTRpQtnCDwgCB6eRWgc3u6CJnfeEsug0J3FXMfDrR8Y56fGR4tBauX5/vXilp8/jvn0V94O9IV8jSM
$ npm exec foo@latest bar --package=@npmcli/foo
kgqwusSNNaonz1d0NTjrUIkJ03FHLrPqa84rL5rSowltFgjlarvHmn2izM0yJnyp7afi9vwcPxzcA5j9/tF8bt7b9d9d3vdKoMjd5y8/OZSbsJVaAUrNM4vKlZ3lEbSFjhpo3dT88jKerQCrlapjCxNupY7EAVbNf4jp1FJgzesmbdUa9iwN/D3705GjObOq5KSlkj7G9Kuynfyr8eWIt3NxlvyA2WSsx/dBDdCySyTqD2endqxfgGLBlJyS0tolyNgiBoZ7JeFUp4KClh/Xa51tt3bUPGurjOhCIULerJRNoij37RWC2LLR+sonHInvzDXTZda+5sJLO84SNrUnsl8N/dHqlUQ4KX/JmNDdii+fhW1FkFVoCtzKCcL6vwF8TN/VGdQenakUOTyPOI1ImtA/Omd0m4LA6CVLimAVwkzCXpccGTP9uE3I8Y5I72AzZOYDF7LQGTfolO6JuIycgrW5b9fltwsuyl/iJT+HoSk=
$ foo@latest bar
vC8+lhZiCibJ4jJ4uuAkjbTiKVfsMXofCXeSwqPNknmfpw4xJkpHcM3sRtHN9Ikd3F141gWxMR5SSClFOtt1wp4A/Jz39LFmLX7iUmevpnx1Uthf/TvMfCDqZcyHCZ4eFF0hMVP7jSl+E1ukBnpVznnLncZwLNvoAfGpRfrnLEZuAAmkNriUOS+kAN2ddhB09hy76SV/cs6upSTXp/z9wTMw/VIMPxhuDK9td3yINk6PDiQaf156UTo59urklNnwoeSKBf89v+jij7R6mPlQeo+edFtwKKQk/IjK+x8FtYwsqCngorJZwGlbioaKJPx9+3zaAMlixu/tCN2ksxTw86ATbn4e7QqoOQDmPUEfbNeC7F7nnfENPxXDeRpUlzitvRKtF2E6RRYO0Arbeej9avREuxwb0aAWWiZyGOHQPCyJi8q3IVXDBCcPIJ9XC4W+q/Ntw2uIeWlLOwAUSOdUXuT14lKEw0gQLSnlKkzeRM1KM3LME6zlPvqhXyTVsxq0
$ npm exec -- foo@latest bar --package=@npmcli/foo