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

Amb*_*dex 5 bootstrapping next.js

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

  • 将它添加到src/components/_app.jsin 中, constructor 但这似乎只在客户端执行(或者getInitialsProps在服务器端执行的时间不够早)。
  • 将它添加到_app.js constructor and server.js,尽管这意味着我的逻辑不能使用模块系统,import因为server.js不是那样编译的。

cr0*_*9xx 0

为其提供一些背景将有所帮助。当您说将引导的代码时,您是指将执行的函数,还是您正在寻找通用代码库,例如在客户端和服务器端使用的实用函数。

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

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

 import { testUtil } from '../util.js';
Run Code Online (Sandbox Code Playgroud)

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

const { testUtil } = require('../util.js');
Run Code Online (Sandbox Code Playgroud)

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