命令行上的Node.js版本?(不是REPL)

715

我想在命令行中获取Node.js的版本号。我期望运行像下面这样的命令:

node -version

但那行不通。 有人知道命令行会是什么吗? (即不是REPL)


1
是的,运行时问题适用于Node命令行,而不是shell。当然,“命令行”可能指任何一件事情。 - Austin Mullins
9
查看 node --help 获取更详细的信息。简而言之,完整的选项名称需要两个破折号:node --version。单个破折号用于表示选项别名组,例如 -version 等同于 -v-e-r 等选项,但 Node 只识别其中的 3 个。 - Jonathan Lonowski
@JonathanLonowski:了解node --helpnode -h也可以)。然而,node不支持您描述的选项分组方式;例如,node -p -i可以工作(从语法上讲-截至0.12,没有任何短选项的组合在语义上是有意义的),但是node -pi会导致“未识别的标志”/“错误的选项”(0.12)错误。 - mklement0
这可能会对某些人有所帮助! - Irf
10个回答

1229

对应的命令行如下:

node -v

或者

node --version

注意:
如果 `node -v` 不起作用,但是 `nodejs -v` 可以,那么你的系统设置可能有些问题。请参见此问题以了解解决方法。

21
在2015年,这种方法已不再适用。请改用nodejs -v - Andrew Thaddeus Martin
39
node -v 是有效的。我正在使用今天可用的最新版本,即 0.12.6。 - yannick1976
8
这在6.8.0版本可行: >node -v v6.8.0 >node --version v6.8.0 - Doctor Jones
1
node -v => v8.11.2 => 所以这也适用于v8.11.2 - Valentin Grégoire

87

如果您在指的是Shell命令行,以下两种方式都可以使用:

node -v

node --version

只需输入node version,node.js 将尝试加载一个名为 version 的模块,但该模块并不存在,除非你喜欢使用令人困惑的模块名称。


4
不用谢。注意,OP 键入的是 node -version 而不是 node version。前者会报告一个 未识别的标志/错误选项(在0.12版本中),然后进入REPL,而后者确实尝试加载不存在的文件,并且在没有进入REPL的情况下中止。@JonathanLonowski已在问题的评论中说明了这点,但让我在此重申一下:node -hnode --help显示所有支持的命令行选项。 - mklement0

41

尝试使用nodejs而不仅仅是node

$ nodejs -v
v0.10.25

8
注意:Node.js 可执行文件应该命名为 node,而不是 nodejs。然而,在某些 Linux 发行版(例如 Ubuntu)中出现了命名冲突,导致可执行文件被安装为 nodejs。例如,在 Ubuntu 14.04 中,运行 apt-get install nodejs 将同时安装可执行文件 node(作为指向 nodejs 的符号链接)。换句话说:为了保持一致性,请先尝试运行 node -v - mklement0

31

只需在命令行中输入npm version,它将显示有关Node、NPM、V8引擎等所有版本详细信息。

这里输入图片描述


16

使用Repl命令查找Nodejs版本

$node
>process.version
`v8.x`

问题标题字面上说“不是 REPL”。 - miken32

15

Node

node --versionnode -v

npm

npm --versionnpm -v

V8引擎版本

node -p process.versions.v8

11

查找已安装的Node版本。

$ node --version
 $ node -v

如果您想获取有关已安装的节点(即节点版本、v8版本、平台、环境变量信息等)的更多信息,

只需执行此操作即可。

$ node
> process
  process {
  title: 'node',
  version: 'v6.6.0',
  moduleLoadList: 
   [ 'Binding contextify',
     'Binding natives',
     'NativeModule events',
     'NativeModule util',
     'Binding uv',
     'NativeModule buffer',
     'Binding buffer',
     'Binding util',
     ...

process对象是一个全局对象,提供有关当前Node.js进程的信息和控制。


">process.version" 只会显示版本号,而不是完整的进程对象。 - JFK

5

默认情况下,node包是nodejs,因此请使用

$ nodejs -v

或者

$ nodejs --version 

您可以使用以下方法创建链接:

$ sudo ln -s /usr/bin/nodejs /usr/bin/node

那么您可以使用。
$ node --version

或者
$ node -v

这种命名不一致在一些发行版中已经在2014年的答案中提到了。https://dev59.com/WGUp5IYBdhLWcg3w_rgl#26622019 - miken32

5
如果您正在使用Atom编辑器,这里有一个很酷的提示。
$ apm -v
apm  1.12.5
npm  3.10.5
node 4.4.5
python 2.7.12
git 2.7.4

它将返回您的节点版本以及其他一些信息。


3
apm -v 命令可以告诉你 Atom 正在使用的 Node 和 npm 版本。但如果你正在使用命令行,它可能不一定是你正在使用的版本。 - Hello Universe

0
2023年11月,这个命令完美运行:
node -v

Note date and time at the command prompt

请在此屏幕截图的命令提示符下注意日期和时间。这样就不会对节点或nodejs产生歧义。看起来它早在很久以前就已经标准化了,并且仍然像这里显示的那样工作。
Node在其依赖框架和工具方面存在某种问题,版本管理对我来说已经成为必须。我经常需要查看旧代码,但它不能在我当前使用的版本上运行。
解决方案是使用可以从GitHub上安装的Node版本管理器“nvm”:https://github.com/nvm-sh/nvm。这个工具将告诉您当前的Node版本,并允许您根据需要临时或频繁地更改它。

请不要重复现有的答案,除非你想分享新的见解。如果是这种情况,请在你的答案中添加更多的解释,以便其他人可以从中学习。 - undefined
Nico,这个答案不一样。有两个主要的区别:1.确认2023年11月的命令仍然有效(不是nodejs -v)2.提议使用nvm作为版本管理器。或者是你需要更多的徽章或声望点数吗? - undefined
请通过编辑您的回答来添加所有的澄清。不,我不会获得任何徽章或声望点数。 - undefined
node -v 这个命令已经在七年前的 https://stackoverflow.com/a/39790080/1116230 中提到过了。再次发布这个信息并没有提供任何额外的好处。而且 nvm 和给定的问题有什么关系呢? - undefined
还是一样吗?它没有提供任何信息,说明七年后你仍然可以使用相同的命令吗?(一些答案暗示随着时间的推移可能会有变化)。而且NVM是一个很棒的工具,不仅可以获取当前版本,还可以管理长期存在的节点问题:它们的一些依赖工具是版本相关的。而且问题本身就涉及版本控制,那么为什么NVM不相关呢? - undefined
我一直在跟随别人的答案,最后到了这里。我只是试图添砖加瓦,但我已经到了删除所有内容的一步之遥。在Stack Overflow上写作已经成为了一种浪费时间的经历,它已经不再有意义了。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接