【发布时间】:2021-10-16 07:54:10
【问题描述】:
问题
为了澄清这个问题,如果我运行next dev,我有这个代码:
window.localStorage.getItem('myCat')
我会收到如下错误:
ReferenceError: window is not defined
我想运行 一些 种实时重新加载的开发环境。
在 prod 中解决,但在 dev 中没有解决
this problem 的可行生产解决方案是:
- 避免getStaticProps/
getStaticPaths next build && next export- 使用nginx重写规则将
/some/route重写为->/some/[dynamic].html - Next.js 为我们处理剩下的事情,即使我们完全静态地为网站提供服务(动态路由 @ 运行时,耶!)
总结
这个问题只是该问题的开发版本:我们如何才能获得实时重新加载 + 静态 Next.js 站点?我知道这并没有得到官方的支持......但是自从我们让它在 prod 中工作后,我认为具有更多 webpack 知识的人可能能够在这里为我指明正确的方向。
我尝试过的
我想我可以结合使用这些工具:
-
custom webpack config for next:用于下面的多个事物
- shim the window object(假设我们仍在运行节点,但我也尝试过 window-shim)
- a custom next.js dev server,但这似乎没有任何可以帮助我的选项...看起来我可以像他们的示例中那样进行一些 URL 重写,但我可以使用我上面提到的 next.config.js webpack 配置@ 987654327@太
【问题讨论】:
-
问题只是关于获取本地存储的访问权限吗?如果是这样,它应该在没有窗口的情况下工作,只需使用 localStorage.getItem() 等。
-
不,如果令人困惑,抱歉,这是关于在 dev 中运行仅前端的静态 Next.js 站点
标签: javascript webpack next.js