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

时间:2018-10-04 12:23:21

标签: webpack ecmascript-6 babeljs webpack-4 babel-loader

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

  

未捕获的SyntaxError:请求的模块'./dist/datastore.js'不存在   提供名为“默认”的导出

我的配置几乎与以前的配置相同,只是使用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"
  ]
}

有人有什么想法吗?

2 个答案:

答案 0 :(得分:3)

如果您正在使用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']
};

答案 1 :(得分:-1)

错误消息是不提供名为'default'的导出文件的是datastore.js-是吗?

您的入口点.js文件不需要导出任何内容,它不是模块,它正在导入datastore.js并在错误消息中注明应该存在并导出名为'default'。