Next.js客户端和服务器端引导代码

时间:2019-03-22 09:19:38

标签: bootstrapping next.js

在哪里可以在服务器端和客户端都放引导代码?我在两端都需要一些逻辑,并且不想在多个地方都维护它。我尝试过/考虑过:

  • 将其添加到src/components/_app.js的{​​{1}}中,但这似乎只能在客户端执行(对于服务器端的constructor来说还不够早)。
  • 将其同时添加到getInitialsProps _app.jsconstructor中,但这意味着我的逻辑不能使用模块系统server.js,因为import未编译像那样。

1 个答案:

答案 0 :(得分:0)

这将有助于为其提供一些背景信息。当您说将要引导的代码时,是指将要执行的功能,还是要寻找通用的代码库,例如在客户端和服务器端都使用的实用程序功能。

我假设您的意思是拥有一个将在客户端和服务器端都执行的文件(使用实用程序功能时)。这样,您可以考虑将文件放在项目的根目录中,例如./util.js

这意味着,如果需要在客户端(例如./pages/index.js),则可以这样引用它:

 import { testUtil } from '../util.js';

如果在服务器文件夹中需要它(我更喜欢将服务器代码放在./server目录中),则可以这样引用它:

const { testUtil } = require('../util.js');

唯一的缺点是您必须不使用ES6构造来编写代码,以确保客户端和服务器之间的互操作性。