【问题标题】:Storybook vite failed to build with ChakraUI / React 18Storybook vite 无法使用 ChakraUI / React 18 构建
【发布时间】:2022-10-14 02:41:09
【问题描述】:

我正在创建一个带有 Vite 和 Storybook 的 UI 库.可悲的是,故事书的构建是破碎的.

在开发模式下,我在构建过程中遇到了一些错误,但我仍然可以浏览故事书组件。但是生产构建完全失败并出现同样的错误。

这是错误:

ERROR in ./node_modules/@chakra-ui/icons/node_modules/@chakra-ui/icon/dist/index.esm.js 58:28
Module parse failed: Unexpected token (58:28)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
|     __css: styles
|   };
>   const _viewBox = viewBox ?? fallbackIcon.viewBox;
|   if (element && typeof element !== "string") {
|     return /* @__PURE__ */ React.createElement(chakra.svg, {
 @ ./node_modules/@chakra-ui/icons/dist/index.esm.js [...lines]
 @ ./node_modules/@chakra-ui/storybook-addon/dist/preset/register.cjs.js
 @ multi ./node_modules/@storybook/core-client/dist/esm/globals/polyfills.js ./node_modules/@storybook/core-client/dist/esm/manager/index.js ./node_modules/@storybook/addon-links/manager.js ./node_modules/@storybook/addon-docs/manager.js ./node_modules/@storybook/addon-controls/manager.js ./node_modules/@storybook/addon-actions/manager.js ./node_modules/@storybook/addon-backgrounds/manager.js ./node_modules/@storybook/addon-viewport/manager.js ./node_modules/@storybook/addon-toolbars/manager.js ./node_modules/@storybook/addon-measure/manager.js ./node_modules/@storybook/addon-outline/manager.js ./node_modules/@storybook/addon-interactions/manager.js ./node_modules/@chakra-ui/storybook-addon/dist/preset/register.cjs.js ./.storybook/generated-refs.js

我使用最新版本的脉轮,反应 18,情感 11 和故事书 6.5 与 vite builder。我尝试使用 webpack 4 和 5,但情况更糟。我在 chakra ui 问题、故事书的问题中搜索了很多解决方案,但似乎没有任何效果。

在生产中,我构建了一些文件,但是当使用 http-server 提供静态文件夹时,我有一个空白警报,其中包含来自故事书的“无预览”消息。

这是我的 package.json :

{...},
"type": "module",
"devDependencies": {
    "@babel/core": "^7.18.13",
    "@chakra-ui/storybook-addon": "^4.0.10",
    "@mdx-js/react": "^1.6.22",
    "@storybook/addon-actions": "^6.5.10",
    "@storybook/addon-docs": "^6.5.10",
    "@storybook/addon-essentials": "^6.5.10",
    "@storybook/addon-interactions": "^6.5.10",
    "@storybook/addon-links": "^6.5.10",
    "@storybook/builder-vite": "^0.2.2",
    "@storybook/jest": "^0.0.10",
    "@storybook/react": "^6.5.10",
    "@storybook/testing-library": "^0.0.13",
    "@types/react": "^18.0.18",
    "@types/react-dom": "^18.0.6",
    "@vitejs/plugin-react": "^2.0.1",
    "babel-loader": "^8.2.5",
    "eslint": "8.23.0",
    "eslint-config-next": "12.2.5",
    "eslint-config-prettier": "8.5.0",
    "eslint-import-resolver-typescript": "^3.5.0",
    "eslint-plugin-import": "2.26.0",
    "eslint-plugin-storybook": "^0.6.4",
    "generate-changelog": "^1.8.0",
    "http-server": "^14.1.1",
    "husky": "8.0.1",
    "lint-staged": "^13.0.3",
    "typescript": "^4.8.2",
    "vite": "^3.0.9",
    "vite-plugin-dts": "^1.4.1",
    "vite-tsconfig-paths": "^3.5.0"
  },
  "dependencies": {
    "@chakra-ui/icons": "^2.0.9",
    "@chakra-ui/react": "2.2.1",
    "@emotion/react": "^11.10.4",
    "@emotion/styled": "^11.10.4",
    "framer-motion": "^7.2.1",
    "nookies": "^2.5.2",
    "prop-types": "^15.8.1",
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
},

还有我的 .storybook/main.cjs :

module.exports = {
  stories: [
    '../packages/**/*.stories.mdx',
    '../packages/**/*.stories.@(js|jsx|ts|tsx)',
    '../stories/**/*.stories.mdx',
    '../stories/**/*.stories.@(js|jsx|ts|tsx)',
  ],
  addons: [
    '@storybook/addon-links',
    '@storybook/addon-essentials',
    '@storybook/addon-interactions',
    '@chakra-ui/storybook-addon',
  ],
  framework: '@storybook/react',
  core: {
    builder: '@storybook/builder-vite',
    disableTelemetry: true,
  },
  features: {
    emotionAlias: false,
    storyStoreV7: true,
    modernInlineRender: false,
  },
  reactOptions: {
    legacyRootApi: false,
  },
}

非常感谢您的帮助:)

【问题讨论】:

    标签: storybook vite emotion chakra-ui react-18


    【解决方案1】:

    在 Chakra-IU 文档的 Instalation 部分:

    Chakra UI 的第 2 版仅与 React 18 兼容。如果您是 仍然需要使用 React 17 或更早版本,请使用version 1 of Chakra UI

    您正在使用"react": "^18.2.0"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-14
      • 2021-10-31
      • 2020-05-29
      • 1970-01-01
      • 2022-11-04
      • 2019-07-15
      • 2022-07-22
      • 2021-08-14
      相关资源
      最近更新 更多