首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当试图使用Rollup.js构建组件库时,React.js无法检测默认导出

当试图使用Rollup.js构建组件库时,React.js无法检测默认导出
EN

Stack Overflow用户
提问于 2022-03-31 20:39:16
回答 1查看 2.4K关注 0票数 1

我试图用React.js创建组件库,为此我使用了Rollup.js。当我构建应用程序时,我在控制台中看到了这个错误。似乎汇总无法检测默认导出,我试图添加一个.babelrc文件配置,但不幸的是,它没有工作。我做错了什么,如何解决这个问题?

//ROLup.config.js

代码语言:javascript
复制
import babel from 'rollup-plugin-babel';
import resolve from '@rollup/plugin-node-resolve';
import external from 'rollup-plugin-peer-deps-external';
import { terser } from 'rollup-plugin-terser';
import postcss from 'rollup-plugin-postcss';
import commonjs from '@rollup/plugin-commonjs';


export default [
    {
        input: './src/index.js',
        output: [
            {
                file: 'dist/index.js',
                format: 'cjs',
            },
            {
                file: 'dist/index.es.js',
                format: 'es',
                exports: 'named',
            }
        ],
        plugins: [
            postcss({
                plugins: [],
                minimize: true,
            }),
            babel({
                exclude: "node_modules/**",
                presets: ["@babel/preset-react"],
            }),
            external(),
            resolve(),
            terser(),
        ]
    }
];

//package.json

代码语言:javascript
复制
{
  "name": "test",
  "version": "0.1.0",
  "private": false,
  "dependencies": {
    "@babel/preset-stage-1": "^7.8.3",
    "@rollup/plugin-commonjs": "^21.0.3",
    "@rollup/plugin-replace": "^2.4.2",
    "@testing-library/jest-dom": "^5.16.3",
    "@testing-library/react": "^12.1.4",
    "@testing-library/user-event": "^13.5.0",
    "babel-preset-latest": "^6.24.1",
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-scripts": "5.0.0",
    "react-transform-hmr": "^1.0.4",
    "typescript": "^4.6.3",
    "web-vitals": "^2.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "tsc",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "storybook": "start-storybook -p 6006 -s public",
    "build-storybook": "build-storybook -s public",
    "build-lib": "rollup -c"
  },
  "files": [
    "dist"
  ],
  "main": "dist/index.js",
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ],
    "overrides": [
      {
        "files": [
          "**/*.stories.*"
        ],
        "rules": {
          "import/no-anonymous-default-export": "off"
        }
      }
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@babel/plugin-external-helpers": "^7.16.7",
    "@babel/preset-react": "^7.16.7",
    "@rollup/plugin-node-resolve": "^11.2.1",
    "@storybook/addon-actions": "^6.4.19",
    "@storybook/addon-essentials": "^6.4.19",
    "@storybook/addon-interactions": "^6.4.19",
    "@storybook/addon-links": "^6.4.19",
    "@storybook/builder-webpack5": "^6.4.19",
    "@storybook/manager-webpack5": "^6.4.19",
    "@storybook/node-logger": "^6.4.19",
    "@storybook/preset-create-react-app": "^4.1.0",
    "@storybook/react": "^6.4.19",
    "@storybook/testing-library": "^0.0.9",
    "rollup": "^2.70.1",
    "rollup-plugin-babel": "^4.4.0",
    "rollup-plugin-node-resolve": "^5.2.0",
    "rollup-plugin-peer-deps-external": "^2.2.4",
    "rollup-plugin-postcss": "^4.0.2",
    "semantic-release": "^19.0.2",
    "webpack": "^5.70.0"
  }
}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-31 21:03:32

错误是告诉你你需要知道的事情。为了解释这意味着什么,react中没有export default ... (您可以通过查看源代码来验证这一点)。

有几种方法可以解决这个问题:

  1. 玩一些@rollup/plugin-commonjs 设置。对不起,我不能告诉你哪一个能工作,也许从defaultIsModuleExports开始吧。
  2. 导入所需的方法。对于react,您可能只使用render,因此按如下方式导入它:import { render } from 'react-dom'
  3. 将所有内容和别名导入为ReactDOM:import * as ReactDOM from 'react-dom'
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71698891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档