Babel 给出 Plugin/Preset 添加 @babel/helper-annotate-as-pure 后没有 return 一个对象

Babel giving Plugin/Preset did not return an object after adding @babel/helper-annotate-as-pure

我最近将 @babel/helper-annotate-as-pure 添加到我的 babel 插件列表中:

    require('babel-plugin-macros'),
    require('@babel/helper-annotate-as-pure').default,
    require('babel-plugin-dev-expression'),
    [
      require('@babel/plugin-proposal-class-properties').default,
      {
        loose: true,
      },
    ],
    [require('@babel/plugin-proposal-decorators').default, { legacy: true }],
    require('@babel/plugin-proposal-numeric-separator').default,
    [
      require('@babel/plugin-transform-runtime').default,
      {
        corejs: false,
        helpers: true,
        version: require('@babel/runtime/package.json').version,
        regenerator: true,
        useESModules: moduleFormat === 'esm',
      } as RuntimeOptions,
    ],
    require('@babel/plugin-syntax-dynamic-import').default,
    require('@babel/plugin-proposal-optional-chaining').default,
    require('@babel/plugin-proposal-nullish-coalescing-operator').default,
    isDevelopment && require.resolve('react-refresh/babel'),
    

我以前使用过 'babel-plugin-annotate-pure-calls' 但在添加插件后,我在不同的地方不断遇到相同的错误:

Plugin/Preset did not return an object

如果我注释掉插件,一切正常

@babel/helper-annotate-as-pure 是一个辅助工具模块,它是 Babel 本身的一部分,它不是一个插件,所以它不能在 plugins 数组中使用。 @babel 命名空间中的所有插件的名称都以 plugin- 开头。

您必须检查 babel-plugin-annotate-pure-calls,您使用的原始插件是否正常工作。