Razzle - 在构建文件夹中的 运行 server.js 上找不到 React 错误
Razzle - React not found Error on running server.js in build folder
我将 Razzle 用于服务器端渲染的 React 应用程序。
现在是在服务器上部署应用程序的时候了。我使用 IIS 作为 Web 服务器。但是当我将构建文件夹移动到另一个目录并在其上 运行 节点服务器时出现错误,我无法找到我在我的应用程序中使用的模块,比如反应。
internal/modules/cjs/loader.js:638
throw err;
^
Error: Cannot find module 'react'
...
我应该将 node_modules 文件夹和 build 文件夹一起移动吗?还是我做错了什么?
您需要将 node_modules 与构建文件夹一起移动。因为 server.js 和构建文件夹中的捆绑文件需要您安装的模块。出现上述错误是因为服务器找不到react模块。
因为没有人回答我的问题。我分享我的发现。
Razzle 在构建时使用 webpack-node-externals 排除 node_modules。 (我不知道为什么)
razzle.config.js 中的一个简单更改即可解决此问题。
module.exports = {
modify: (config, { target, dev }, webpack) => {
if (target === "node") {
config.externals = []
}
return config;
},
};
我将 Razzle 用于服务器端渲染的 React 应用程序。
现在是在服务器上部署应用程序的时候了。我使用 IIS 作为 Web 服务器。但是当我将构建文件夹移动到另一个目录并在其上 运行 节点服务器时出现错误,我无法找到我在我的应用程序中使用的模块,比如反应。
internal/modules/cjs/loader.js:638
throw err;
^
Error: Cannot find module 'react'
...
我应该将 node_modules 文件夹和 build 文件夹一起移动吗?还是我做错了什么?
您需要将 node_modules 与构建文件夹一起移动。因为 server.js 和构建文件夹中的捆绑文件需要您安装的模块。出现上述错误是因为服务器找不到react模块。
因为没有人回答我的问题。我分享我的发现。
Razzle 在构建时使用 webpack-node-externals 排除 node_modules。 (我不知道为什么)
razzle.config.js 中的一个简单更改即可解决此问题。
module.exports = {
modify: (config, { target, dev }, webpack) => {
if (target === "node") {
config.externals = []
}
return config;
},
};