如何在下一个js中从package.json获取版本?

eli*_*236 6 javascript typescript reactjs next.js

我正在尝试从 is nextjs 应用程序获取“版本” package.json

我已经尝试过process.env.npm_package_version像节点应用程序一样,但它正在返回undefined

小智 11

您可以在其中NextJs创建一个next.config.js文件和以下几行。

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

module.exports = {
  publicRuntimeConfig: {
    version,
  },
};
Run Code Online (Sandbox Code Playgroud)

然后当您在应用程序中的任何位置需要该版本时

import getConfig from 'next/config';

const { publicRuntimeConfig } = getConfig();
const version = publicRuntimeConfig?.version
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息,请阅读这篇文章。

2023/11/23 更新:Next js 表示此功能已弃用,您最好使用环境变量来实现该用途。但你仍然可以用 做同样的事情publicRuntimeConfig为了获得更好的解释,请参阅他们文档的这一部分。

这是一个“现代”版本,至少可以在接下来的 14 个版本中使用:

const { version } = require('./package.json');
    
module.exports = {
  env: {
    version
  }
};
Run Code Online (Sandbox Code Playgroud)

然后您可以version通过以下方式在应用程序代码中访问process.env.version


Vol*_*ple 5

process.env.npm_package_version仅当您之前安装了该软件包时才可以使用package_vars(请参阅:https ://docs.npmjs.com/cli/v6/using-npm/scripts#packagejson-vars )

但在您的情况下,最简单的方法是导入您的package.json文件(这只是一个.json文件),如下所示:

const { version } = require('./package.json');
console.log(version);
Run Code Online (Sandbox Code Playgroud)