Невозможно экспортировать по умолчанию с Webpack 4 и Babel 7

Вот некоторые функции, которые раньше работали у меня с Babel 6, но у меня проблемы с Babel 7. Я пытаюсь экспортировать класс (по умолчанию) как библиотеку. В настоящее время я получаю следующую ошибку, когда пытаюсь импортировать его.

Uncaught SyntaxError: запрошенный модуль './dist/datastore.js' не предоставляет экспорт с именем 'default'

Мои конфигурации почти идентичны моим прежним конфигурациям, только что обновленным с помощью Babel 7.

Биты из Webpack:

output: {
  path: `${__dirname}/dist`,
  filename: `${moduleName}.js`,
  library: 'datastore',
  libraryExport: 'default',
  libraryTarget: 'umd',
  umdNamedDefine: true
},

Биты из моей точки входа:

import DataStore from './datastore';

export default DataStore;

Биты из .babelrc:

{
  "presets": [
    ["@babel/preset-env", {
      "targets": {
        "node": "current"
      },
      "modules": false
    }]
  ],
  "plugins": [
    "@babel/plugin-transform-async-to-generator",
    "@babel/plugin-transform-destructuring",
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-proposal-object-rest-spread"
  ]
}

У кого-нибудь есть идеи?


person Steve -Cutter- Blades    schedule 04.10.2018    source источник


Ответы (1)


Если вы используете babel 7, вам необходимо загрузить этот пакет:

npm i --save-dev babel-plugin-add-module-exports

А затем добавьте в свою конфигурацию babel этот плагин add-module-exports:

module.exports = {
  presets: [
    [
      '@babel/preset-env',
      {
        modules: false,
        targets: {
          browsers: ['last 2 versions', 'safari >= 7']
        }
      }
    ]
  ],
  plugins: ['add-module-exports']
};
person grandemayta    schedule 02.11.2018
comment
Действительно? Согласно документации этого плагина, он влияет только на модули commonjs, тогда как я пытаюсь экспортировать чистый es-компонент. - person Steve -Cutter- Blades; 02.11.2018
comment
Но в документации по обновлению Babel 7 прямо указано, что у них _1 _... я что-то упускаю? - person sfletche; 12.09.2019
comment
Это относится к самим библиотекам babel, например, если вы экспортируете что-то из babel для создания собственного плагина babel. - person user1881102; 20.09.2019
comment
Это устранило мою проблему - person Nate Cheng; 01.02.2020