本篇文章给大家带来的内容是关于import提升导致Fundebug报错的解决方法(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

摘要: 解释一下“请配置apikey”报错的原因。

部分Fundebug用户使用import来导入js文件时,出现了"请配置apikey"的报错,这是由于import提升导致的,下面我会详细解释一下这一点。

import提升

关于import提升,我们可以参考阮一峰的《ECMAScript 6 入门》。

import命令具有提升效果,会提升到整个模块的头部,首先执行。foo();

import { foo } from 'my_module';

上面的代码不会报错,因为import的执行早于foo的调用。这种行为的本质是,import命令是编译阶段执行的,在代码运行之前。

因此,即使我们把import语句写在后面,它仍然会在其他语句之前执行。

import提升为何导致Fundebug报错?

Fundebug用户应该清楚,在接入fundebug-javascript插件之后,需要配置apikey,如下:import * as fundebug from "fundebug-javascript";

fundebug.apikey = "API-KEY";

假设我们还需要import一个test.js文件,这个文件会抛出一个Error,如下:// test.js

throw new Error("test")

一切看起来没有问题:// main.js

import * as fundebug from "fundebug-javascript";

fundebug.apikey = "API-KEY";

import "./test"

但是,根据import提升,代码的实际执行顺序如下:// main.js

import * as fundebug from "fundebug-javascript";

import "./test"

fundebug.apikey = "API-KEY";

这种情况下,第二行代码就会抛出错误,导致apikey复制语句不会执行,从而导致报错:“请配置apikey”。

这个问题并不需要解决

出于测试的目的,用户会去import一个立即报错的js文件,类似于前文提到的test.js。但是实际开发中,我们不可能这样做,否则应用会立即崩溃,更谈不上部署了。

我们写这篇博客的目的仅仅是解释一下原因,并分享一个非常简单的知识点“import提升”。

如何规避这个问题?

仅供参考,实际上没有必要这样做。

新建一个配置文件config.js,在这个文件中配置apikey:fundebug.apikey = "API-KEY";

import配置文件:// main.js

import * as fundebug from "fundebug-javascript";

import "./config"

import "./test"

这种情况下,配置apikey的语句被import代替了,也就不存在所谓"import提升"的问题,Fundebug将可以正常报错。

fundebug php,import提升导致Fundebug报错的解决方法(详细)相关推荐

  1. from scipy.misc import imread, imresize, imsave 报错的解决方法

    报错原因: Python已经取消scipy库中imread,imresize,imsave三个函数的使用 解决方法: 1.imread和imsave解决方法: Python已将imread和imsav ...

  2. import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder; 报错的解决方法

    这是因为这个类不属于JDK标准库范畴,但在JDK中包含了该类,可以直接使用.但是在eclipse中直接使用却报错. 转载于:https://www.cnblogs.com/yangxiaomei/p/ ...

  3. Python语言importError:cannot import name ‘InvalidArgumentException‘报错的解决方法:

    Python语言importError:cannot import name 'InvalidArgumentException'报错的解决方法: 参考文章: (1)Python语言importErr ...

  4. 在使用backtrader时,遇到 ImportError: cannot import name ‘warnings‘ from ‘matplotlib.dates‘ 报错的解决方法

    在使用backtrader时,遇到 ImportError cannot import name 'warnings' from 'matplotlib.dates' 报错的解决方法 被这个问题搞得心 ...

  5. mysql5.7 only_full_group_by_Mysql5.7及以上版本 ONLY_FULL_GROUP_BY报错的解决方法

    近期在开发过程中,因为项目开发环境连接的mysql数据库是阿里云的数据库,而阿里云的数据库版本是5.6的.而测试环境的mysql是自己安装的5.7.因此在开发过程中有小伙伴不注意写了有关group b ...

  6. python googletrans_Python使用googletrans报错的解决方法

    问题 最近在工作中发现了一个问题,Python代码一直用着免费的Google翻译API插件googletrans,这两天突然就报错了: Traceback (most recent call last ...

  7. android线程改变布局,Android线程中设置控件的值提示报错的解决方法

    本文实例讲述了Android线程中设置控件的值提示报错的解决方法.分享给大家供大家参考,具体如下: 在Android线程中设置控件的值一般会与Handler联合使用,如下: package com.y ...

  8. K8S 1.18.0 以及KubeEdge 1.10.3 三机安装部署(含过程记录及遇到的报错和解决方法)

    因为网络上大多数教程只有部署相关的命令,而无输入命令后正确界面的显示样例,因此在参考网络上教程并跟随实现的过程中,我将过程进行截图记录,供大家参考.希望对大家有帮助~ 一. K8S部署 选用了三台虚拟 ...

  9. R安装WGCNA包(MacOS M1芯片)及impute包安装报错的解决方法【已成功】

    R安装WGCNA包(MacOS M1芯片) WGCNA R安装WGCNA包 安装impute时的错误 impute包安装报错的解决方法 WGCNA 加权基因共表达网络分析 (WGCNA, Weight ...

最新文章

  1. 1048 数字加密 --非满分
  2. 四川大学java试题_四川大学2013年计算机(软件)学院Java语言程序设计期末考试试题B卷...
  3. html table 表格 行合并 列合并
  4. 无法通过sak判断卡片类型_不同类型人脸识别闸机展示
  5. OpenStack Keystone架构
  6. Linux哈希表数组,开地址哈希表(Hash Table)的接口定义与实现分析
  7. android textView 折叠 展开 ExpandableTextView
  8. AngularJS 的常用特性(四)
  9. paip.解决问题Unable to access jarfile E:\resin-4.0.22\lib\resin.jar
  10. TCP SYN-Cookie背后的人和事
  11. 佳能Canon FAX-L160 传真机驱动
  12. javaweb项目tomcat检查不到当前模型的解决方法
  13. Linux下载的详细教程
  14. GG修改服务器迷你世界,gg修改器脚本大全迷你世界设置回点
  15. 同名的同义词和视图解惑
  16. 万用字元与特殊符号及正则表示字符
  17. IMU让无人机控制变得更轻松
  18. CentOS之——Bringing up interface eth0: Determining if ip address 192.168.1.81 is already in use for de
  19. Android:辅助功能(模拟点击,模拟手势)入门基本学习
  20. python3.6.6对应pydev_python之pydev安装

热门文章

  1. 关于Chrome谷歌浏览器开发者工具(f12)中Network中Name空白的解决方案
  2. vscode xhr failed 解决办法
  3. JAVA函数(方法)
  4. linux stty设置串口,Linux使用stty显示修改终端行设置方法
  5. 网页中在线玩合金弹头
  6. glup 和 webpack 的不同之处总结
  7. VMware虚拟机迁移至PVE
  8. 案例+代码详解:用Word2Vec建立你的私人购物助手
  9. QPixmap::save 失败
  10. (附源码)计算机毕业设计SSM火车票预定管理系统