vue3.0+vite+ts项目引用高德地图不能打包问题

1 篇文章 0 订阅
1 篇文章 0 订阅

问题1:

webpack可以配置 externals: {"BMap": "BMap",'AMap': 'AMap'},

但是vite中没有该配置项,很难搞。

问题2:

当你在vue的index.html中引用了如下

但是全局AMap在ts语法报错 但是不影响使用。不过打包时候报错

问题2:

觉得应该在window上。引用window.XXXXX就好了。想法很对,但

 难受不.......(ts:老子不同意)

没用的逼逼完了,老规矩不能复制粘贴让我解决的方案都是垃圾,上代码

问题1解决方案:

webpack中有externals配置 vite怎么使用

首先 介绍 vite-plugin-resolve-externals插件

npm i -D vite-plugin-resolve-externals

vite-plugin-resolve-externals - npm

下载完成后在项目的 vite.config.ts 文件中引入

 代码不想去官网

import { defineConfig } from 'vite'
import resolveExternalsPlugin from 'vite-plugin-resolve-externals'
export default defineConfig({
  plugins: [
    resolveExternalsPlugin({
      AMap: 'AMap'
    })
  ],
})

问题2和问题3统一说 解决方案

window.XXXXX 报错  是因为需要声明一下window

vue3.0中创建 typings.d.ts文件

在里面声明你要Window.XXXX的对象

declare interface Window {

     XXXX:any

}

能复制的来了

declare interface Window {
  AMap: any
  initAMap: any
}

针对问题2高德地图Amap爆红问题

 去在你项目中编写公共方法的地方封装当前方法

 快。复制。。。

export  function MapLoader () { 
  return new Promise((resolve, reject) => {
  if (window.AMap) {
    resolve(window.AMap)
  }
  window.initAMap = () => {
    resolve(window.AMap)
    }
  })
}

使用方法

 一阵操作下来能打包了。

 

  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值