小编bur*_*alc的帖子

tRPC AppRouter 在使用 Turborepo 导入时被定义为“any”

我目前正在使用带有 Turborepo 的 monorepo 将所有微服务代码存储在一个存储库中,每个存储库都有 apackage.json和 a tsconfig.json,所有这些代码都是用 Nodejs 编写的。

在每个中tsconfig.json,配置都是相同的

{
  "extends": "@tsconfig/node18-strictest-esm",
  "compilerOptions": {
    "outDir": "build",
    "baseUrl": ".",
    "paths": {
      "@/*": ["./*"],
      "@folder-a/*": ["./folder-a/*"], // masked
      "@folder-b/*": ["folder-b/*"] // masked
    }
  },
  "exclude": ["node_modules", "build"]
}
Run Code Online (Sandbox Code Playgroud)

我有一项服务A作为 tRPC 服务器,一项服务B作为 tRPC 客户端。

AppRouter当我导入from Ato的类型定义时,如果正确键入,B类型定义就会变为anyin 。BA

参考图片在这里。

我研究了一下并发现了类似的问题,看起来路径别名可能会导致这个问题。

有没有任何解决方案/替代原因

typescript turborepo trpc.io

9
推荐指数
0
解决办法
773
查看次数

React 服务器组件在 SEO 上的性能

所以这是一个比较新的话题,最近发布了React Server Components,对比SSR/Next.js,它对SEO有什么影响?

由于组件在请求时在服务器中动态呈现,因此它不像Next.js那样像SSR那样静态,如果我使用它,搜索引擎会无法索引这些组件吗?

可以在此处找到演示

我们可以看到,在api.server.js

async function renderReactTree(res, props) {
  await waitForWebpack();
  const manifest = readFileSync(
    path.resolve(__dirname, '../build/react-client-manifest.json'),
    'utf8'
  );
  const moduleMap = JSON.parse(manifest);
  pipeToNodeWritable(React.createElement(ReactApp, props), res, moduleMap);
}

function sendResponse(req, res, redirectToId) {
  const location = JSON.parse(req.query.location);
  if (redirectToId) {
    location.selectedId = redirectToId;
  }
  res.set('X-Location', JSON.stringify(location));
  renderReactTree(res, {
    selectedId: location.selectedId,
    isEditing: location.isEditing,
    searchText: location.searchText,
  });
}
Run Code Online (Sandbox Code Playgroud)

我知道这可以帮助减少客户端设备的工作量,因为组件在服务器上呈现并发送到客户端,并且组件可以使用存储在服务器中的秘密来呈现,因为我们可以将其作为道具传递而不是我们将秘密发送给客户。

但如果 SEO 很重要,SSR 是否比 React Server 组件更受欢迎?

javascript reactjs server-side-rendering next.js react-server-components

5
推荐指数
2
解决办法
373
查看次数