Javascript lv7中的配置合并

Javascript lv7中的配置合并,javascript,reactjs,babeljs,Javascript,Reactjs,Babeljs,我刚刚升级到babelv7,之前我有一个默认环境,其中有一些别名,还有一个测试环境中有一些别名,现在在测试环境中,babel用于合并两个配置,在babelv7中,此功能已被删除,如何在不重复别名2次的情况下实现此合并功能 这是我的babel.config.js module.exports = { presets: ['custom-preset'], env: { test: { presets: ['@babel/preset-env', '@babel/pres

我刚刚升级到babelv7,之前我有一个默认环境,其中有一些别名,还有一个测试环境中有一些别名,现在在测试环境中,babel用于合并两个配置,在babelv7中,此功能已被删除,如何在不重复别名2次的情况下实现此合并功能

这是我的babel.config.js

module.exports = {
  presets: ['custom-preset'],
  env: {
    test: {
      presets: ['@babel/preset-env', '@babel/preset-react'],
      plugins: [
        'transform-class-properties',
        [
          'module-resolver',
          {
            root: ['./app'],
            alias: {
              'test-util': './node_modules/test-util/lib',
            },
          },
        ],
      ],
    },
  },
  ignore: ['node_modules'],
  plugins: [
    [
      'transform-imports',
      {
        lodash: {
          transform: 'lodash/${member}',
          preventFullImport: true,
        },
      },
    ],
    [
      'module-resolver',
      {
        root: ['./app'],
        alias: {
          'module1': './src/components/module1',
        },
      },
    ],
  ],
};


Babel 7中对合并的主要更改是,实际上合并的内容更多,因此,与此配置使用两种不同的配置生成模块解析器的两个实例不同,测试中的配置将覆盖顶级模块的配置

要告诉Babel它们是两个独立的插件,您需要至少为其中一个插件指定一个唯一的名称,该名称是作为插件项数组中的第三个条目传递的字符串,例如

  plugins: [
    'transform-class-properties',
    [
      'module-resolver',
      {
        root: ['./app'],
        alias: {
          'test-util': './node_modules/test-util/lib',
        },
      },
      'testing-resolver' // A name for the plugin so it is unique and doesn't overwrite
    ],
  ],

谢谢,它是不是写在文档中的某个地方,找不到它。在中的插件合并部分提到了它,但不是在env上下文中特别提到的。