【源码】NodeJs版本号由来
发布于 4 年前 作者 gocpplua 1646 次浏览 来自 分享

运行Nodejs时,输出:

Welcome to Node.js v17.0.0-pre.
Type ".help" for more information.

问题来了,这个版本号在哪里的???

全局搜了一把 “Welcome to Node.js”:

esmLoader.loadESM(() => {
    console.log(`Welcome to Node.js ${process.version}.\n` +
      'Type ".help" for more information.');

    const cliRepl = require('internal/repl');
    cliRepl.createInternalRepl(process.env, (err, repl) => {
      if (err) {
        throw err;
      }
      repl.on('exit', () => {
        if (repl._flushing) {
          repl.pause();
          return repl.once('flushHistory', () => {
            process.exit();
          });
        }
        process.exit();
      });
    });

所以接下来,我们就要看怎么获取到 “process.version”。 尝试着全局搜索"process.version",结果真的出现了:

  // process.version
  READONLY_PROPERTY(process,
                    "version",
                    FIXED_ONE_BYTE_STRING(env->isolate(), NODE_VERSION));

然后根据宏定义,最后找到:src\node_version.h中:

#define NODE_MAJOR_VERSION 17
#define NODE_MINOR_VERSION 0
#define NODE_PATCH_VERSION 0

其实按照正常思路,我是应该去找文件:node_process*.cc的,不过碰巧找到也是极好的。

回到顶部