Javascript Webpack是否可以轻松公开模块的默认类而不是模块本身?
我试图通过Webpack(在本例中为FusionCharts)将模块公开到全局范围,以便可以通过页内脚本直接访问它。我几乎可以得到所有的方法,但我没有能够直接公开Javascript Webpack是否可以轻松公开模块的默认类而不是模块本身?,javascript,webpack,fusioncharts,Javascript,Webpack,Fusioncharts,我试图通过Webpack(在本例中为FusionCharts)将模块公开到全局范围,以便可以通过页内脚本直接访问它。我几乎可以得到所有的方法,但我没有能够直接公开FusionCharts类;相反,我得到的是模块本身,其中包含default:class FusionCharts 我的相关网页包配置如下所示: ... module: { rules: [ ..., { test: /core\/index\.js$/, use: ['expose-loader
FusionCharts
类;相反,我得到的是模块本身,其中包含default:class FusionCharts
我的相关网页包配置如下所示:
...
module: {
rules: [
...,
{ test: /core\/index\.js$/, use: ['expose-loader?FusionCharts'] }
]
},
plugins: [
new webpack.ProvidePlugin({
...,
FusionCharts: ['fusioncharts/core', 'default']
})
],
...
然后我有一个charts.js
文件,在一个简单的例子中,它看起来像:
import Column2D from 'fusioncharts/viz/column2d';
FusionCharts.addDep(Column2D);
Webpack正确构建charts.js
文件以包含FusionCharts库,页面上的脚本可以看到FusionCharts
变量,但它是模块而不是类
例如,该页面可能有:
<script src="/assets/charts.js"></script>
...
<script>
$(function() {
// would output "FusionCharts: Module"
console.log(FusionCharts);
// would output "class FusionCharts" (which is what I am after)
console.log(FusionCharts.default);
});
</script>
...
$(函数(){
//将输出“FusionCharts:模块”
控制台日志(FusionCharts);
//将输出“类FusionCharts”(这是我所追求的)
log(FusionCharts.default);
});
可以像这样直接公开类吗?我想,
expose loader
可以像ProvidePlugin
那样自动取消对默认值的引用,但如果是这样,我找不到它。要将FusionCharts访问到js文件中,需要导入FusionCharts模块,以便访问所有FusionCharts属性和项目,如需参考,请查看此链接-
此外,请检查此样本以了解详细信息-