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

原文由 Abhik Bose Pramanik 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

我发现以下代码片段最适合我。由于它使用 require 来加载 package.json ,因此无论当前工作目录如何,它都可以工作。

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

@Pathogen 提供的警告:

使用 Browserify 执行此操作具有安全隐患。

注意不要将您的 package.json 暴露给客户端,因为这意味着您的所有依赖项版本号、构建和测试命令等都将发送给客户端。

如果你在同一个项目中构建服务器和客户端,你也会暴露你的服务器端版本号。攻击者可以使用此类特定数据来更好地适应对您服务器的攻击。

原文由 Mark Wallace 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

 process.env.npm_package_version

有关详细信息,请参阅 package.json 变量

原文由 Julien Christin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题