无法使用 Webpack 4 和 Babel 7 导出默认值

Ste*_*des 3 ecmascript-6 webpack babeljs babel-loader webpack-4

以下是一些以前在 Babel 6 中适用的功能,但在 Babel 7 中遇到了问题。我正在尝试将(默认)类导出为库。目前,当我尝试导入它时,出现以下错误。

未捕获的语法错误:请求的模块“./dist/datastore.js”不提供名为“default”的导出

我的配置几乎与以前的配置相同,只是使用 Babel 7 进行了更新。

来自 Webpack 的部分:

output: {
  path: `${__dirname}/dist`,
  filename: `${moduleName}.js`,
  library: 'datastore',
  libraryExport: 'default',
  libraryTarget: 'umd',
  umdNamedDefine: true
},
Run Code Online (Sandbox Code Playgroud)

我的入口点的位:

import DataStore from './datastore';

export default DataStore;
Run Code Online (Sandbox Code Playgroud)

.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"
  ]
}
Run Code Online (Sandbox Code Playgroud)

有人有主意吗?

小智 5

如果你使用 babel 7 你需要加载这个包:

npm i --save-dev babel-plugin-add-module-exports
Run Code Online (Sandbox Code Playgroud)

然后在你的 babel 配置中添加这个插件“add-module-exports”:

module.exports = {
  presets: [
    [
      '@babel/preset-env',
      {
        modules: false,
        targets: {
          browsers: ['last 2 versions', 'safari >= 7']
        }
      }
    ]
  ],
  plugins: ['add-module-exports']
};
Run Code Online (Sandbox Code Playgroud)