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