在哪里可以在服务器端和客户端都放引导代码?我在两端都需要一些逻辑,并且不想在多个地方都维护它。我尝试过/考虑过:
src/components/_app.js
的{{1}}中,但这似乎只能在客户端执行(对于服务器端的constructor
来说还不够早)。 getInitialsProps
_app.js
和constructor
中,但这意味着我的逻辑不能使用模块系统server.js
,因为import
未编译像那样。 答案 0 :(得分:0)
这将有助于为其提供一些背景信息。当您说将要引导的代码时,是指将要执行的功能,还是要寻找通用的代码库,例如在客户端和服务器端都使用的实用程序功能。
我假设您的意思是拥有一个将在客户端和服务器端都执行的文件(使用实用程序功能时)。这样,您可以考虑将文件放在项目的根目录中,例如./util.js
这意味着,如果需要在客户端(例如./pages/index.js
),则可以这样引用它:
import { testUtil } from '../util.js';
如果在服务器文件夹中需要它(我更喜欢将服务器代码放在./server
目录中),则可以这样引用它:
const { testUtil } = require('../util.js');
唯一的缺点是您必须不使用ES6构造来编写代码,以确保客户端和服务器之间的互操作性。