npx - 在 `npx prettier` 和 `npx prettier@2` 中,`@` 做了什么?
npx - what does the `@` do in `npx prettier` vs `npx prettier@2`?
我熟悉 node_modules/.bin
和 npx
工具。
我最近注意到我们的一个配置运行:
npx prettier@2
这实际上产生了与
不同的输出
npx prettier
以这种方式调用时,prettier 似乎使用了不同的配置文件。
npx prettier@2
与 npx prettier
有何不同?
编辑:
根据要求:
$ npx prettier --version
2.1.1
$ npx prettier@2 --version
npx: installed 1 in 1.437s
2.2.0
Prettier 2.2.0 是 released a few hours ago and seems to have a bug
npx
将导致下载包并执行该包提供的 bin
脚本。命令 npx prettier
将导致下载最新版本的 prettier 并执行文件 ./bin/prettier.js
。
npx
还允许您使用 @
符号指定要下载的特定语义版本。所以 npx prettier
运行 是最新的,但是 npx prettier@2
仍然 运行 只有版本 2,即使 prettier 更新到新的主要版本。
npx [options] <command>[@version] [command-arg]...
和
-p, --package <package>
- define the package to be installed. This
defaults to the value of <command>
. This is only needed for packages
with multiple binaries if you want to call one of the other
executables, or where the binary name does not match the package name.
If this option is provided <command>
will be executed as-is, without
interpreting @version if it's there. Multiple --package
options may
be provided, and all the packages specified will be installed.
更深入地了解您的问题会使事情变得有点奇怪。我不确定为什么当你 运行 这两个命令时你会得到不同的结果,它们应该是等价的(至少现在是因为 2 是当前的主要版本)。
尝试同时打印版本字符串,看看是否有所不同,这可能会显示一些额外的细节
npx prettier --version
npx prettier@2 --version
两者都给我相同的字符串,但根据您的缓存或配置,这可能会有所不同。
我熟悉 node_modules/.bin
和 npx
工具。
我最近注意到我们的一个配置运行:
npx prettier@2
这实际上产生了与
不同的输出npx prettier
以这种方式调用时,prettier 似乎使用了不同的配置文件。
npx prettier@2
与 npx prettier
有何不同?
编辑:
根据要求:
$ npx prettier --version
2.1.1
$ npx prettier@2 --version
npx: installed 1 in 1.437s
2.2.0
Prettier 2.2.0 是 released a few hours ago and seems to have a bug
npx
将导致下载包并执行该包提供的 bin
脚本。命令 npx prettier
将导致下载最新版本的 prettier 并执行文件 ./bin/prettier.js
。
npx
还允许您使用 @
符号指定要下载的特定语义版本。所以 npx prettier
运行 是最新的,但是 npx prettier@2
仍然 运行 只有版本 2,即使 prettier 更新到新的主要版本。
npx [options] <command>[@version] [command-arg]...
和
-p, --package <package>
- define the package to be installed. This defaults to the value of<command>
. This is only needed for packages with multiple binaries if you want to call one of the other executables, or where the binary name does not match the package name. If this option is provided<command>
will be executed as-is, without interpreting @version if it's there. Multiple--package
options may be provided, and all the packages specified will be installed.
更深入地了解您的问题会使事情变得有点奇怪。我不确定为什么当你 运行 这两个命令时你会得到不同的结果,它们应该是等价的(至少现在是因为 2 是当前的主要版本)。
尝试同时打印版本字符串,看看是否有所不同,这可能会显示一些额外的细节
npx prettier --version
npx prettier@2 --version
两者都给我相同的字符串,但根据您的缓存或配置,这可能会有所不同。