Skip to content

Preventing Vue.js from loading external libraries

amCharts 4 comes with some external libraries that are not needed for core operation, but might be dynamically loaded for some niche operation, like exporting a chart to PDF.

Normally Vue.js would bundle those files into your app, inflating its size.

As a quick workaround you can tap into the Vue CLI generated webpack config and tell it not to prefetch these files.

To do that, create a vue.config.js file in the root of your project and add this to it:

vue.config.js
module.exports = {
chainWebpack: config => {
config
.plugin('prefetch')
.tap(args => {
return [
{
rel: 'prefetch',
include: 'asyncChunks',
fileBlacklist: [
/\.map$/,
/pdfmake\.[^.]+\.js$/,
/xlsx\.[^.]+\.js$/,
/fabric[^.]*\.[^.]+\.js$/,
/responsivedefaults\.[^.]+\.js$/,
]
}
]
})
}
}

The files will still be generated to the output directory, but they will not be loaded.