首页 > 解决方案 > 如何在 piral app-shell 和 pilet 应用程序中使用 styled-components?

问题描述

我目前正在使用内部开发的 UI 框架构建一个 PoC Piral 应用程序。这个 UI 框架依赖于styled-components模块,当我的 piral app-shell 和 pilet 应用程序都开始使用这些样式组件时,这会导致问题。

当我没有明确包含时styled-compnents,我会收到以下错误消息:

Uncaught Error: Cannot find module 'styled-components'
    at requireModule (dependency.js:7)
    at dependency.js:32
    at Array.map (<anonymous>)
    at define (universalModuleDefinition:3)
    at webpackUniversalModuleDefinition (universalModuleDefinition:7)
    at universalModuleDefinition:12

当我添加styled-components为依赖项时,我收到此错误消息,并且 piral app-shell 无法呈现:

看起来在此应用程序中初始化了多个“样式组件”实例。这可能会导致动态样式无法正确渲染、补水过程中的错误、缺少主题道具,并在没有充分理由的情况下使您的应用程序变大。

标签: javascriptreactjsstyled-componentspiral

解决方案


我在文档中找到了答案

我必须在 piral app-shell 的package.json文件中列出这些依赖项,如下所示:

"pilets": {
    "externals": [
      "styled-components",
      "<internal ui framework>"
    ]
  }

在我这样做之后,所有问题都解决了。


推荐阅读