Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何正确地导出网页包库?_Javascript_Webpack_Ecmascript 6_Bundle_Babeljs - Fatal编程技术网

Javascript 如何正确地导出网页包库?

Javascript 如何正确地导出网页包库?,javascript,webpack,ecmascript-6,bundle,babeljs,Javascript,Webpack,Ecmascript 6,Bundle,Babeljs,第一次真正尝试使用webpack,我正在尝试创建一个可重用的库。我不知道如何正确导出我的库类。下面是我目前正在做的事情的概述,以及我如何尝试使用已经构建的内容 我有一个这样的切入点: import ClassA from './classA'; import ClassB from './classB'; export {ClassA, ClassB}; 当我的应用程序需要时,我希望使用构建库导入我的类: import {ClassA} from './libs/library.js'; /

第一次真正尝试使用webpack,我正在尝试创建一个可重用的库。我不知道如何正确导出我的库类。下面是我目前正在做的事情的概述,以及我如何尝试使用已经构建的内容

我有一个这样的切入点:

import ClassA from './classA';
import ClassB from './classB';

export {ClassA, ClassB};
当我的应用程序需要时,我希望使用构建库导入我的类:

import {ClassA} from './libs/library.js'; // currently using chrome flags for testing
但我无法为我的网页包构建找到正确的“输出”配置。我将babel env与.babelrc一起使用,如:

{
  "presets": [[
    "env", {
      "targets": {
        "browsers": "last 2 versions"
      }
    }
  ]]
}
和一个网页包配置,如:

const path = require('path');

export default () => ({
    entry: __dirname + '/src/index.js',
    output: {
        path: path.resolve(__dirname, './libs'),
        filename: 'library.js',
        libraryTarget: 'umd',
        library: ''
    },
    externals: {},
    module: {
        rules: [{
            test: /\.js$/,
            exclude: /node_modules/,
            use: {
                loader: "babel-loader"
            }
        },{
            test: /\.js$/,
            exclude: /node_modules/,
            use: {
                loader: "eslint-loader"
            }
        }]
    },
    resolve: {
        modules: [path.resolve('./node_modules'), path.resolve('./src')],
        extensions: ['.json', '.js']
    }
});
但是,当尝试使用我的类时,通过前面显示的导入,我得到一个错误:

未捕获语法错误:请求的模块未提供导出 名为“ClassA”


有人知道我做错了什么吗?我敢肯定,我只是错过了网页选项的正确配置,但谷歌的几个小时并没有起到任何作用。

似乎有一个长期存在的网页解决方案


同时,您可以执行一个简单的
import./classA'
,它应该将变量添加到全局范围(这是
libraryTarget:'umd'
选项的默认行为)

尝试
导出默认值
而不是您现在的
导出
,我尝试从我的模块中提供多个类,我不确定
导出默认值
对我有何帮助?。。。