Javascript 如何正确地导出网页包库?
第一次真正尝试使用webpack,我正在尝试创建一个可重用的库。我不知道如何正确导出我的库类。下面是我目前正在做的事情的概述,以及我如何尝试使用已经构建的内容 我有一个这样的切入点: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'; /
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'
选项的默认行为)尝试导出默认值
而不是您现在的导出
,我尝试从我的模块中提供多个类,我不确定导出默认值
对我有何帮助?。。。