有没有方法在nodejs应用程序中获取package.json中设置的版本?我想要这样的东西

var port = process.env.PORT || 3000
app.listen port
console.log "Express server listening on port %d in %s mode %s", app.address().port, app.settings.env, app.VERSION

当前回答

以下是如何读取package.json的版本:

fs = require('fs')
json = JSON.parse(fs.readFileSync('package.json', 'utf8'))
version = json.version

编辑:哇,这个答案最初来自2012年!现在有几个更好的答案。可能最干净的是:

const { version } = require('./package.json');

其他回答

使用ES6模块,您可以执行以下操作:

import {version} from './package.json';

要确定节点代码中的包版本,可以使用以下命令:

const version=require('./package.json').version;对于<ES6版本从“”导入{版本}/package.json';对于ES6版本const版本=process.env.npm_package_version;如果应用程序已使用npmstart启动,则所有npm*环境变量都可用。您还可以使用以下npm包:root require、pkginfo、项目版本。

有两种检索版本的方法:

需要package.json并获取版本:

const { version } = require('./package.json');

使用环境变量:

const version = process.env.npm_package_version;

请不要使用JSON.parse、fs.readFile和fs.readFileSync,也不要使用其他npm模块,这不是这个问题所必需的。

我使用查找同步来执行此操作:

var findup = require('findup-sync');
var packagejson = require(findup('package.json'));
console.log(packagejson.version); // => '0.0.1' 

您可以使用ES6导入package.json以检索版本号并在控制台上输出版本。

import {name as app_name, version as app_version}  from './path/to/package.json';

console.log(`App ---- ${app_name}\nVersion ---- ${app_version}`);