我正在尝试通过Webpack(在本例中为FusionCharts)将模块公开给全局范围,以便可以通过页内脚本直接访问该模块。我几乎可以使用所有方法,但是我无法直接公开FusionCharts
类。相反,我得到的是模块本身,其中包含default: class FusionCharts
。
我相关的Webpack配置如下:
...
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>
是否可以像这样直接公开类?我以为expose-loader
可以像ProvidePlugin
那样自动取消引用默认值,但是如果是这样,我找不到它。
答案 0 :(得分:0)
要访问FusionCharts到您的js文件中,您需要导入FusionCharts模块才能访问所有FusionCharts属性和项,以供参考,请检查此链接-https://www.fusioncharts.com/dev/api/fusioncharts#parameters-1
此外,请查看此示例以获取详细信息-https://www.dropbox.com/s/4v5xqyxl66djr6y/fc%203.13.zip?dl=0