作为一名已经工作几个月的工程师,已经不能只考虑是否可以实现的问题啦,也得考虑打包后文件大小的问题了。我司实现一个后台管理系统,其中只有一个页面中需要引入高德地图,但是在公共页面中直接加载script的话,会使打包后的文件变大,这是不太妥当的一件事。那么解决途径如下:
原方案(在index.html中引入):
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=x6osLar5zHovWUf66slRnP4htGzsxaiM"></script>
修改后方案:
1、创建一个新的js文件,我命名为baidu-map.js,你随意~
(可直接复制此baidu-map.js文件)
export function MP (ak) {
const BMap = window.BMap // 解决BMap is not defined错误
return new Promise(function (resolve, reject) {
if (typeof BMap !== 'undefined') {
resolve(BMap)
return true
}
window.onBMapCallback = function () {
resolve(BMap)
}
let script = document.createElement('script')
script.id = 'baiduMap'
script.type = 'text/javascript'
script.src = 'http://api.map.baidu.com/api?v=2.0&ak=' + ak + '&callback=onBMapCallback'
script.onerror = reject
document.head.appendChild(script)
})
}
2、在需要用到地图的页面中
import { MP } from "./baidu-map.js"
mounted () {
MP("你的key值")
.then(() => {
this.bmapconfig() //或者是配置的option=> myChart.setOption(option)
})
},