【问题标题】:Latest Babel (@babel/core v7) error "exports is not defined"最新的 Babel (@babel/core v7) 错误“未定义导出”
【发布时间】:2019-04-27 23:59:02
【问题描述】:

到目前为止,我已经尝试了所有能找到的方法,但仍然收到错误“未定义导出”。

我正在使用 ReactJS.NET(用于 NetCore2),这是强制性的,否则我的整个应用程序将无法在 NetCore2 下加载。

这是我的.babelrc

{
  "presets": [
    "@babel/preset-react",
    "@babel/preset-env",
    "@babel/preset-typescript"
  ],
  "plugins": [
    "add-module-exports",
    "@babel/plugin-proposal-class-properties",
    [
      "@babel/plugin-transform-runtime",
      {
        "corejs": 2,
        "helpers": true,
        "regenerator": true,
        "useESModules": true
      }
    ]
  ]
} 

旧的 babel 和“add-module-exports”一切正常。 babel 7 有替代方案吗?

【问题讨论】:

    标签: reactjs webpack babeljs babel-loader reactjs.net


    【解决方案1】:

    有几点:

    更新

    我没有注意到您使用的是typescript。在这种情况下,您可能想要这样做:

    1) 将您的 .babelrc 更改为:

    {
      "presets": [
        "react",
        ["env", {"modules": false} ],
        "typescript"
      ],
      "plugins": [
        "add-module-exports",
        "@babel/plugin-proposal-class-properties",
        [
          "@babel/plugin-transform-runtime",
          {
            "corejs": 2,
            "helpers": true,
            "regenerator": true,
            "useESModules": true
          }
        ]
      ]
    }
    

    2) 确保您的 tsconfig.json 具有以下条目:"module": "commonjs",

    【讨论】:

    • 添加 plugin-transform-modules-commonjs 解决了我的问题。 "modules":false 说它是一个已删除的选项(在 babel v7 中不可用)。我在同一个项目中使用 TS 和 JS(我计划稍后将所有内容移至 TS)。好吧,无论如何,我想它可以工作,因为该错误不再弹出。现在 ReactJS.NET 无法渲染,并出现心爱的 Invariant Violation: expected a string... 错误 T_T。谢谢!
    猜你喜欢
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多