-1

像 next.js、razzle 和 back-pack 这样的构建系统似乎真的很有帮助,但根据我发现的示例和它们生成的默认应用程序,它们似乎是面向服务器端渲染的。是否有类似的构建系统可以(或这里提到的)用于构建带有 node.js 后端的动态反应应用程序?

我希望找到一个我可以开箱即用的工具,它可以观察后端和前端代码并刷新对任何一个的更改。我知道我可以找到一个 webpack 或 gulp 脚本来开始并自定义它,但我喜欢上面这样的工具的想法,它只是一个命令。

编辑

我需要将前端部署到 Google Cloud Storage,所以我根本不想要任何服务器端渲染。

4

2 回答 2

1

只要您只使用导出支持的功能,就可以导出 next.js 应用程序。

从文档中:

https://github.com/zeit/next.js/#static-html-export

这是一种无需任何 Node.js 服务器即可将 Next.js 应用程序作为独立静态应用程序运行的方法。导出应用程序几乎支持 Next.js 的所有功能,包括动态 url、预取、预加载和动态导入。

像往常一样使用 Next.js 开发您的应用程序。然后创建一个自定义 Next.js 配置,如下所示:

// next.config.js
module.exports = {
  exportPathMap: function() {
    return {
      '/': { page: '/' },
      '/about': { page: '/about' },
      '/readme.md': { page: '/readme' },
      '/p/hello-nextjs': { page: '/post', query: { title: 'hello-nextjs' } },
      '/p/learn-nextjs': { page: '/post', query: { title: 'learn-nextjs' } },
      '/p/deploy-nextjs': { page: '/post', query: { title: 'deploy-nextjs' } }
    }
  }
}

在那里,您指定需要导出为静态 HTML 的页面。

然后只需运行这些命令: next build next export

关于限制:

限制使用下一次导出,我们会在您运行下一次导出命令时构建您的应用程序的 HTML 版本。届时,我们将运行您页面的 getInitialProps 函数。

因此,您只能使用传递给 getInitialProps 的上下文对象的路径名、查询和 asPath 字段。您不能使用 req 或 res 字段。

基本上,当我们预先构建 HTML 文件时,您将无法动态呈现 HTML 内容。如果需要,您需要在下次启动时运行您的应用程序。

于 2018-03-30T14:43:06.513 回答
0

如果您不需要服务器端渲染,您可以使用create-react-app

于 2018-03-30T12:49:15.240 回答