Razzle - 在构建文件夹中运行 server.js 时未找到 React 错误

Maj*_*adi 1 javascript deployment node.js reactjs razzle

我将 Razzle 用于服务器端渲染的 React 应用程序。

现在是在服务器上部署应用程序的时候了。我使用 IIS 作为 Web 服务器。但是,当我将构建文件夹移动到另一个目录并在其上运行节点服务器时,会出现无法找到我在应用程序中使用的模块的错误,例如 react.js。

internal/modules/cjs/loader.js:638
    throw err;
    ^
Error: Cannot find module 'react'
...
Run Code Online (Sandbox Code Playgroud)

我应该用 build 文件夹移动 node_modules 文件夹吗?还是我做错了什么?

Maj*_*adi 5

因为没有人回答我的问题。我分享我发现的。

Razzle 使用 webpack-node-externals 在构建时排除 node_modules。(我不知道为什么)

razzle.config.js 中的一个简单更改将解决此问题。

module.exports = {
    modify: (config, { target, dev }, webpack) => {
      if (target === "node") {
        config.externals = []    
      }
      return config;
    },
  };
Run Code Online (Sandbox Code Playgroud)