【源码】NodeJs版本号由来
运行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的,不过碰巧找到也是极好的。