用于服务器端渲染的 create-react-app 打字稿

Posted

技术标签:

【中文标题】用于服务器端渲染的 create-react-app 打字稿【英文标题】:create-react-app typescript for server-side-rending 【发布时间】:2020-03-21 17:54:33 【问题描述】:

我有一个由 create-react-app typescript(tsx 文件)构建的项目。

我现在想制作项目 s-s-r,但不知道如何开始。

在使用 this article 之后的 typescript 之前,我能够进行 s-s-r

如果您能给我指导,不胜感激

【问题讨论】:

【参考方案1】:

我在挣扎了 8 个小时后解决了这个问题。

您不能将 react 的 tsconfig 文件用于服务器。

我必须制作一个新的配置文件。 (server.tsconfig.json)


  "compilerOptions": 
    "baseUrl": "./src",
    "paths": 
      "*": ["*", "./src/@types/*"]
    ,
    "outDir": "./dist",
    "target": "es5",
    "typeRoots": ["./src/@types", "./node_modules/@types"],
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noImplicitAny": false,
    "moduleResolution": "node",
    "strictNullChecks": false,
    "jsx": "react",
    "noEmit": true
  ,
  "exclude": ["node_modules"]

并在运行 ts-node 时指明此配置

ts-node --project server.tsconfig.json --require tsconfig-paths/register server/index.js

如果您使用自定义类型,则必须在服务器文件中添加类型的引用

/// <reference path="../src/@types/global.d.ts" />

我希望这会节省您的时间

【讨论】:

你在导入'ignore-styles'模块吗?你是如何应用 css 或 sass 的? @adadortiz 能否提供客户端 react 应用和服务器的完整代码? @ahadortiz 能否提供此类应用程序的示例代码【参考方案2】:

几个月前我发现自己穿着这双鞋。我在配置客户端和服务器代码以使用打字稿方面遇到了很多困难。

做对了之后,我创建了一个包含模板和其他开发配置的存储库。

看看server-side rendered react with typescript

使用此模板启动新项目非常容易。

【讨论】:

以上是关于用于服务器端渲染的 create-react-app 打字稿的主要内容,如果未能解决你的问题,请参考以下文章

服务器端渲染不适用于生产构建 Next.js

React Context 不适用于服务器端渲染

用于服务器端渲染的 create-react-app 打字稿

Nuxtjs实现服务端渲染和静态化站点

Angular 2 Universal - 使用手写笔和 pug 模板的服务器端渲染

在 Nuxt.js 中检测服务器端渲染