终于找到了解决办法。
经过大量搜索,我发现 nuxt 和 amcharts 都使用了不同版本的 webpack。以前版本的 webpack 使用 webpackJsonp 作为函数,新版本使用 webpackJsonp 作为数组。
首先加载 amcharts js,因此它将 webpackJsonp 声明为一个函数。然后 nuxt 使用它并向它调用 push 函数。这是一个错误。
所以我在 nuxt.config 文件中的 webpack 配置中给出了自定义 jsonpFunction 字符串,如下所示
extend(config, ctx) {
config.output = {
jsonpFunction: 'webpackLoad'
};
}
但这也没有解决我的错误,当我运行 nuxt 时它没有加载 localhost,它只是显示等待。
然后我刚刚下载了amchart库并在所有地方用webpackLoad替换了webpackJsonp。这解决了我的问题。
编辑:
如here所述,我已经使用 npm 下载了模块
然后用下面的代码
if (process.browser) {
var am4core = require('@amcharts/amcharts4/core'),
am4maps = require('@amcharts/amcharts4/maps'),
am4geodata_world = require('@amcharts/amcharts4-geodata/worldIndiaHigh').default,
am4themes_animated = require('@amcharts/amcharts4/themes/animated').default;
}
然后在挂载中
mounted() {
am4core.useTheme(am4themes_animated);
var chart = am4core.create(this.$el, am4maps.MapChart);
}