Is there a way to get version from package.json in nodejs code?

Is there a way to get the version set in package.json in a nodejs app? I would want something like this

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

I found that the following code fragment worked best for me. Since it uses 'require' to load the package.json, it works regardless the current working directory.

var pjson = require('./package.json');
console.log(pjson.version);

A warning, courtesy of @Pathogen:

Doing this with browserify has security implications.
Be careful not to expose your package.json to the client, as it means that all your dependency version numbers, build and test commands and more are sent to the client.
If you're building server and client in the same project, you expose your server-side version numbers too.
Such specific data can be used by an attacker to better fit the attack your server.


If your application is launched with 'npm start', you can simply use:

process.env.npm_package_version

See package.json vars for more details.


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

import {version} from './package.json';
链接地址: http://www.djcxy.com/p/27676.html

上一篇: package.json中的本地依赖

下一篇: 有没有在nodejs代码中从package.json获取版本的方法?