【问题标题】:How to make Nuxt Content hot reload in production mode working如何在生产模式下使 Nuxt Content 热重载工作
【发布时间】:2021-10-03 10:56:46
【问题描述】:

我正在使用Nuxt Content 来存储应用程序内容(JSON 文件)。它在开发模式下工作很酷,热重载。我网站的后端会更改内容文件夹中的任何文件,并且会立即在浏览器中更改,而无需重新加载页面。但是在生产模式下,即使在页面重新加载后也没有任何变化。我试过在没有process.dev 条件的情况下使用Handling Hot Reload

export default function ({ store }) {
  window.onNuxtReady(($nuxt) => {
    $nuxt.$on('content:update', ({ event, path }) => {
      console.log('content:update')
      store.dispatch('fetchContentData')
    })
  })
}

但它甚至不适用于页面重新加载。 如何使生产模式下的热重载在不重新加载的情况下工作,或者至少在重新加载的情况下

【问题讨论】:

  • 错误的作业工具,没有在 dev 中运行 dev hmr 套接字,您需要通过观察文件的更改来重建您的应用程序,您可以使用 nodemon 或 pm2 等执行此操作,但您可能以及远离内容并使用数据库
  • @LawrenceCherone HMR 和nuxt/contentdev 完全有效。你的意思是production 可能吗?如果你愿意,你可以试试这个 repo:github.com/kissu/nuxt-tailwind-typography-darkmode-boilerplate 因为目前的 Nuxt CLI 有点烦人,所以现在生成一个快速的样板文件。
  • 当然,它在 dev 中工作,还有额外的代码在运行(一个 websocket)来监听、构建和推送更改。它没有添加到生产版本中
  • @kissu 当然,但我仍然没有为我的项目找到最终解决方案,并且正在研究其他方法。我让你知道我的最终解决方案。但是我真的不明白如果我不能在不重建的情况下更改我的内容,为什么 Content 模块如此受欢迎。
  • 它旨在在开发过程中以一种简单的方式在很多情况下正常工作。你所问的根本不是任何人做的。 tina.io 是您视觉上最接近的解决方案。但是您要么拥有:1) 每次访问特定页面时都会获取 API 并获取最新值 2) 将提前生成的静态内容,无需进一步的 API 调用即可提供服务。您不能将 1) 和 2) 混为一谈,没有人这样做,我看不出有什么方法可以做到这一点。然后,我可能不知道所有这些,但我高度怀疑它的存在。不过,祝你好运!

标签: nuxt.js nuxt-content


【解决方案1】:

如果您的内容托管在 API 上,您可以通过 Live Preview feature 观看更改。
但是,如果它在本地更改您的文件并且您确实使用了target: static,那么没有其他方法可以再次生成您的项目以查看更改。

【讨论】:

  • 当内容文件发生变化时,有什么方法可以在生产模式下更新应用程序?我不在我的项目中使用target: static。我尝试使用Live Preview feature 并没有效果。还有这个页面上的注释Only available when using target:static但你说的相反
  • @Yosef 如果您查看此视频的链接仓库,您会发现目标似乎无关紧要:youtu.be/2DtDsnWe2MU 同时,您需要了解拥有这样的预览需要 API并且它与构建应用程序无关。我建议将此作为您问题的替代解决方案。但是您需要了解开箱即用,您所要求的内容是不可能的。 HMR 仅供开发人员使用,当您构建应用程序时,无法在捆绑构建中动态注入代码,它不应该像这样工作。
猜你喜欢
  • 2021-06-01
  • 2021-08-04
  • 2020-02-12
  • 2019-10-19
  • 2020-09-18
  • 2020-10-19
  • 2019-10-19
  • 1970-01-01
  • 2022-11-03
相关资源
最近更新 更多