npm exec命令是用来从本地或远程npm包中运行命令的。
npm exec -- <pkg>[@<version>] [args...]
npm exec --package=<pkg>[@<version>] -- <cmd> [args...]
npm exec -c '<cmd> [args...]'
npm exec --package=foo -c '<cmd> [args...]'
# 别名: npm x
这个命令允许你从npm包(本地或远程)中运行任意命令,类似在上下文中使用 npm run 来运行命令。
用法
1、直接使用包和参数命令
npm exec -- lerna init
npm exec -- lerna@latest init
2、指定包--package 和 命令参数
npm exec --package=lerna@latest -- lerna init
3、使用 --package 指定包 和 --call 指定命令
npm exec --package=lerna -c "lerna init"
4、只指定--call 命令,不指定--package
npm exec -c "lerna init"
npm exec -c "echo hello"
如果不指定 --package ,那么-c的命令参数,需要 lerna 命令可以直接执行。
npx和npm exec的区别
npx会将其后面的标志和选项都会优先设置为位置参数。
例如:
npx foo@latest bar --package=@npmcli/foo
和下面的命令一样
foo bar --package=@npmcli/foo
和npx不同,npm exec命令:
npm exec foo@latest bar --package=@npmcli/foo
会转换为下面的命令
foo@latest bar
双连字符,会将后面的选项标志转换为位置参数,停止解析命令行选项。下面的npm exec 命令后面加了双连字符,与npx命令执行一致。
npm exec -- foo@latest bar --package=@npmcli/foo
选项配置
--package -p
指定要安装的包
--call -c
根据安装包的PATH,运行命令
--workspace -w
指定工作空间
--workspaces --ws
指定多个工作空间