首页 > 解决方案 > 为什么一个 pollyfilled 组件需要再次在导入的项目中进行 polyfill?

问题描述

我有一个作为库创建的 React 组件。我已经使用 webpack 和 babeljs 为它运行了构建。在babel.config.js这个组件库的 Babel 中,我有以下内容来填充旧浏览器中可能不存在的函数:

  "presets": [
    "@babel/preset-typescript",
    "@babel/preset-react",
    [
      "@babel/preset-env",
      {
        "targets": {
          "node": "current"
        },
        "useBuiltIns": "usage",
        "corejs": {
          "version": "3.17",
          "proposals": true
        }
      }
    ]
  ],

但是,当我将此组件库导入我的主 React 应用程序时,浏览器会抱怨一些 JS 函数在运行时“不是函数”。

最后我必须做的是在我的主要 React 应用程序中进行相同的设置,babel.config.js以使其正常工作,我无法理解。

自从我拥有那些 babel 配置后,组件库在从自己的存储库构建时是否已经被填充?

为什么当我将它导入到我的主 React 应用程序中时,它在主 React 应用程序中没有那些 babel 配置时不起作用?为什么我必须在我的主 React 应用程序中再次使用相同的设置才能再次填充以使其工作?

标签: javascriptreactjstypescriptbabeljsbabel-preset-env

解决方案


推荐阅读