我如何(应该)将一些版本信息作为“元数据”添加到我的 Next.js 应用程序中,以便可以从浏览器中使用它?
我的目标是用户不会经常看到它,但可以在某个地方找到它,例如确认已部署哪个版本。
我想到了这些选择:
<meta version="1.2.3">
,<!-- v1.2.3 -->
,<div>
,我想到了几个选择:
<html>
或 <body>
。看起来像<html data-app-version="1.2.3">
我仍然没有找到完美的解决方案,但这里有一些更多信息/想法:
(我确实意识到这本质上也只是“将其添加到窗口对象”,正如 Olavi 建议的那样)
我在 Next.js 页面 props 中添加了一个属性
appVersion
。这样我就可以从浏览器控制台读取版本号:
window.__NEXT_DATA__.props.pageProps.appVersion
我从 package.json 中获取版本号,并将其传递给 Next.js 页面 props:
package.json
"version": "1.2.3",
const nextConfig = {
serverRuntimeConfig: {
appVersion: process.env.npm_package_version || '',
},
}
import getConfig from 'next/config';
const { serverRuntimeConfig = {} } = getConfig() || {};
export const getStaticProps = function(){
return {
props: {
appVersion: serverRuntimeConfig.appVersion || '',
},
};
};
将版本号添加到 redux 存储中,例如进入
state.app.appVersion
,
然后您可以稍后从浏览器控制台读取它:
window.__NEXT_REDUX_STORE__.getState().app.appVersion