uni-app中_wrapNativeSuper is not defined使用maplibre-gl报错

发布于 1周前 作者 eggper 来自 Uni-App

uni-app中_wrapNativeSuper is not defined使用maplibre-gl报错
应为是使用hubilder直接创建的项目然后运行项目的时候就报错了查了相关问题的解决方法

GitHub讨论

但是不是知道直接创建的uniapp项目怎么去配置traget,希望知道的朋友可以帮忙告知一下谢谢

图片


1 回复

在uni-app中使用maplibre-gl遇到“_wrapNativeSuper is not defined”错误通常是因为某些依赖或Babel配置不正确导致的。这个错误常见于类(class)继承相关的处理上,特别是在使用Babel转译ES6+代码到ES5时。以下是一些可能的解决方案,结合代码示例来说明如何调整配置。

1. 确保Babel配置正确

首先,确保你的项目中.babelrcbabel.config.js文件配置正确。对于类继承问题,Babel通常需要@babel/plugin-transform-classes插件。以下是一个基本的Babel配置示例:

// .babelrc
{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "ios": "9",
          "android": "4.4"
        },
        "useBuiltIns": "usage",
        "corejs": 3
      }
    ]
  ],
  "plugins": [
    "@babel/plugin-transform-runtime",
    "@babel/plugin-proposal-class-properties"
  ]
}

注意:@babel/plugin-transform-classes在Babel 7中已经被集成到@babel/preset-env中,因此通常不需要单独安装和使用。

2. 引入polyfill

由于_wrapNativeSuper通常与核心-js的polyfill相关,确保你的项目已经正确引入了core-js。在babel.config.js中,通过useBuiltInscorejs选项来自动引入所需的polyfill。

3. 检查第三方库

如果错误是在使用maplibre-gl时出现的,可能是因为maplibre-gl或其依赖的某个版本与你的Babel配置不兼容。尝试更新maplibre-gl到最新版本,或者查看其issue tracker看看是否有其他人遇到并解决了相同的问题。

4. 清理和重建

有时候,简单的清理和重建项目可以解决缓存导致的问题。

# 清理npm缓存(可选)
npm cache clean --force

# 删除node_modules和package-lock.json
rm -rf node_modules package-lock.json

# 重新安装依赖
npm install

# 重新构建项目
# 根据你的构建命令,可能是npm run build或其他

结论

由于“_wrapNativeSuper is not defined”通常与Babel配置和polyfill相关,检查和调整这些配置是解决问题的关键。如果上述方法仍然无法解决问题,建议详细检查具体的错误堆栈,看看错误发生在哪个文件或库中,并据此进一步调查。

回到顶部