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

有没有办法在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

我发现下面的代码片段最适合我。 由于它使用'require'来加载package.json,所以它不管当前的工作目录。

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

一个警告,由@Pathogen提供:

使用browserify做这件事有安全隐患。
注意不要将package.json暴露给客户端,因为这意味着所有依赖版本号,构建和测试命令以及更多内容都会发送到客户端。
如果您在同一个项目中构建服务器和客户端,则也会暴露您的服务器端版本号。
攻击者可以使用这些特定数据来更好地适应您的服务器的攻击。


如果你的应用程序是用'npm start'启动的,你可以简单地使用:

process.env.npm_package_version

有关更多详细信息,请参阅package.json vars。


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

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

上一篇: Is there a way to get version from package.json in nodejs code?

下一篇: Compositional advantage of Lodash/Underscore syntax over vanilla JS syntax