仅在Next.js App中导入NPM软件包以用于服务器端渲染(SSR)

时间:2020-09-21 05:59:21

标签: reactjs next.js

我只在第一次加载页面并且正在服务器上进行渲染时才尝试使用一个私有NPM模块。我正在使用以下代码,但仍可以使用构建分析器在client.html中看到我的程序包。

var joined_middle = string.Join('-', middle);

1 个答案:

答案 0 :(得分:1)

一个很好的问题,我仔细研究了Next.js的代码,发现为了只在服务器上存在代码,您需要使用一些传递给webpack.DefinePlugin的变量(该变量在构建时间将用该值代替用法,这将使摇树工作正常进行。)

在此line中,有一个特殊变量process.browser,仅在浏览器中为true

将代码更改为

if (!process.window) {
  const content = await import('@abc/my-npm-package');
  return conent(payload);
} else {
  return null;
}