npm exec -- <pkg>[@<version>] [args...]
npm exec --package=<pkg>[@<version>] -- <cmd> [args...]
npm exec -c '<cmd> [args...]'
npm exec --package=foo -c '<cmd> [args...]'
npx -- <pkg>[@<version>] [args...]
npx --package=<pkg>[@<version>] -- <cmd> [args...]
npx -c '<cmd> [args...]'
npx --package=foo -c '<cmd> [args...]'
从以上两者的使用方式上,我们很容易可以看出,npm exec
命令后面的内容与 npx
命令后面的内容相同,npx
就是 npm exec
的简写,但在解决包方面还是有一些区别的,如下所示:
npm exec
//先解决作为选项的@npmcli/foo包
//不解决作为位置参数的foo@latest包
//最后运行foo@latest bar(在--package=@npmcli/foo上下文)
$ npm exec foo@latest bar --package=@npmcli/foo
可以使用双连字符(--
)标志(flag)来抑制作为选项的包的解决,以达到与 npx
一样的功能。
//以下命令等效于下述npx命令
//先解决作为位置参数的foo@latest包
//不解决作为选项的@npmcli/foo包
//最后运行foo bar --package=@npmcli/foo
$ npm exec -- foo@latest bar --package=@npmcli/foo
npx
//先解决作为位置参数的foo@latest包
//不解决作为选项的@npmcli/foo包
//最后运行foo bar --package=@npmcli/foo
$ npx foo@latest bar --package=@npmcli/foo
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/javascriptexp/5448.html