解析npx文档中‘标志选项需先于位置参数设置’的含义及示例
npx命令中“位置参数”的定义与合规示例
一、什么是npx语境下的“位置参数”
在npx的命令逻辑里,位置参数指的是你指定的「要执行的第三方包名」,以及后续传递给这个包的命令、参数。简单说,就是不属于npx自身配置的、用来定义“运行什么”和“怎么运行这个包”的内容。
二、合规的npx命令示例(选项/标志在位置参数前)
以下是符合官方规则的写法:
查看npx版本(无位置参数)
npx --version--version是npx自身的标志,没有后续位置参数,符合要求。指定包版本后运行命令
npx --package=vue-cli@4 vue create my-vue-project--package=vue-cli@4是npx的选项(用来指定要安装/使用的包版本),属于npx的配置项;后面的vue create my-vue-project是位置参数:vue是目标包名,create my-vue-project是传递给vue-cli的命令和参数。选项在位置参数之前,是正确写法。阻止自动安装包后运行工具
npx --no-install eslint --fix src/**/*.js--no-install是npx的标志(禁止自动安装本地不存在的包),后面的eslint --fix src/**/*.js是位置参数:eslint是要运行的包,--fix src/**/*.js是传递给eslint的参数。标志在位置参数前,逻辑符合预期。
三、错误示例(选项/标志在位置参数后)
如果把npx的选项放在位置参数之后,会被误判为传递给目标包的参数,比如:
npx eslint --no-install --fix src/**/*.js
这里--no-install会被当成eslint的参数,而非npx的标志,导致npx依然会尝试自动安装eslint(本地未安装时),不符合原本的需求。
内容的提问来源于stack exchange,提问作者Daniel Kaplan
相关产品推荐
相关产品推荐

