协慌网

登录 贡献 社区

有没有办法从 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';