实施服务器端渲染时,Node.js中的导入文件失败

时间:2019-02-08 10:33:26

标签: node.js reactjs typescript webpack serverside-rendering

我正在用打字稿编写的React项目上实现服务器端渲染。所有组件,容器和其他目录都位于src目录中。 当react从./src/providers/xxProvider.ts导入文件时,它可以简单地以import * from "providers/xxProvider"的形式导入。我猜这是捆绑时由webpack完成的操作。 但是现在,当我尝试将Node.js用于ssr时,node.js在导入为import * from "providers/xxProvider"时无法找到xxProvider文件,因为它开始在node_modules中查找。

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

您可能没有在tsconfig.json中定义正确的path mapping。尝试以下示例:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "*": [
        "*",
        "src/*"
      ]
    }
  }
}

答案 1 :(得分:0)

我找到了答案。问题出在使用webpack-node-externals插件。当我们使用它时,捆绑时webpack会自动忽略node-modules文件夹。 当我将某些内容导入为import * from providers/xxProvider时,同时在node_modules中有一个名为provider / xxx的目录,捆绑时webpack将排除所有名为providers的目录。