fundebug php,import提升导致Fundebug报错的解决方法(详细)
本篇文章给大家带来的内容是关于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报错的解决方法(详细)相关推荐
- from scipy.misc import imread, imresize, imsave 报错的解决方法
报错原因: Python已经取消scipy库中imread,imresize,imsave三个函数的使用 解决方法: 1.imread和imsave解决方法: Python已将imread和imsav ...
- import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder; 报错的解决方法
这是因为这个类不属于JDK标准库范畴,但在JDK中包含了该类,可以直接使用.但是在eclipse中直接使用却报错. 转载于:https://www.cnblogs.com/yangxiaomei/p/ ...
- Python语言importError:cannot import name ‘InvalidArgumentException‘报错的解决方法:
Python语言importError:cannot import name 'InvalidArgumentException'报错的解决方法: 参考文章: (1)Python语言importErr ...
- 在使用backtrader时,遇到 ImportError: cannot import name ‘warnings‘ from ‘matplotlib.dates‘ 报错的解决方法
在使用backtrader时,遇到 ImportError cannot import name 'warnings' from 'matplotlib.dates' 报错的解决方法 被这个问题搞得心 ...
- mysql5.7 only_full_group_by_Mysql5.7及以上版本 ONLY_FULL_GROUP_BY报错的解决方法
近期在开发过程中,因为项目开发环境连接的mysql数据库是阿里云的数据库,而阿里云的数据库版本是5.6的.而测试环境的mysql是自己安装的5.7.因此在开发过程中有小伙伴不注意写了有关group b ...
- python googletrans_Python使用googletrans报错的解决方法
问题 最近在工作中发现了一个问题,Python代码一直用着免费的Google翻译API插件googletrans,这两天突然就报错了: Traceback (most recent call last ...
- android线程改变布局,Android线程中设置控件的值提示报错的解决方法
本文实例讲述了Android线程中设置控件的值提示报错的解决方法.分享给大家供大家参考,具体如下: 在Android线程中设置控件的值一般会与Handler联合使用,如下: package com.y ...
- K8S 1.18.0 以及KubeEdge 1.10.3 三机安装部署(含过程记录及遇到的报错和解决方法)
因为网络上大多数教程只有部署相关的命令,而无输入命令后正确界面的显示样例,因此在参考网络上教程并跟随实现的过程中,我将过程进行截图记录,供大家参考.希望对大家有帮助~ 一. K8S部署 选用了三台虚拟 ...
- R安装WGCNA包(MacOS M1芯片)及impute包安装报错的解决方法【已成功】
R安装WGCNA包(MacOS M1芯片) WGCNA R安装WGCNA包 安装impute时的错误 impute包安装报错的解决方法 WGCNA 加权基因共表达网络分析 (WGCNA, Weight ...
最新文章
- 1048 数字加密 --非满分
- 四川大学java试题_四川大学2013年计算机(软件)学院Java语言程序设计期末考试试题B卷...
- html table 表格 行合并 列合并
- 无法通过sak判断卡片类型_不同类型人脸识别闸机展示
- OpenStack Keystone架构
- Linux哈希表数组,开地址哈希表(Hash Table)的接口定义与实现分析
- android textView 折叠 展开 ExpandableTextView
- AngularJS 的常用特性(四)
- paip.解决问题Unable to access jarfile E:\resin-4.0.22\lib\resin.jar
- TCP SYN-Cookie背后的人和事
- 佳能Canon FAX-L160 传真机驱动
- javaweb项目tomcat检查不到当前模型的解决方法
- Linux下载的详细教程
- GG修改服务器迷你世界,gg修改器脚本大全迷你世界设置回点
- 同名的同义词和视图解惑
- 万用字元与特殊符号及正则表示字符
- IMU让无人机控制变得更轻松
- CentOS之——Bringing up interface eth0: Determining if ip address 192.168.1.81 is already in use for de
- Android:辅助功能(模拟点击,模拟手势)入门基本学习
- python3.6.6对应pydev_python之pydev安装