博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
import提升导致Fundebug报错:“请配置apikey”
阅读量:6812 次
发布时间:2019-06-26

本文共 1445 字,大约阅读时间需要 4 分钟。

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

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

import提升

关于import提升,我们可以参考阮一峰的。

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

foo();import { foo } from 'my_module';复制代码

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

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

import提升为何导致Fundebug报错?

用户应该清楚,在接入插件之后,需要配置apikey,如下:

import * as fundebug from "fundebug-javascript";fundebug.apikey = "API-KEY";复制代码

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

// test.jsthrow new Error("test")复制代码

一切看起来没有问题:

// main.jsimport * as fundebug from "fundebug-javascript";fundebug.apikey = "API-KEY";import "./test"复制代码

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

// main.jsimport * 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.jsimport * as fundebug from "fundebug-javascript";import "./config"import "./test"复制代码

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

最后,感谢Fundebug用户龙哥的反馈和协助!

参考

关于Fundebug

专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了10亿+错误事件,付费客户有Google、360、金山软件、百姓网等众多品牌企业。欢迎大家!

版权声明

转载时请注明作者以及本文地址:

你可能感兴趣的文章
Storm系列(六)storm和kafka集成
查看>>
东南亚的招聘骗局,程序员请注意!
查看>>
Android 获得View宽高的几种方式
查看>>
iOS正则表达式
查看>>
关于javascript的this指向问题
查看>>
Java程序员必须掌握的spring boot
查看>>
关于移动端适配,你必须要知道的
查看>>
Promise的理解和用法
查看>>
java B2B2C Springboot电子商城系统-高可用的服务注册中心
查看>>
Dubbo的总体架构
查看>>
Spring Cloud微服务架构代码结构详细讲解
查看>>
以太经典硬分叉:矿工欢喜、投资者欢庆、社区高兴的“三赢”之举
查看>>
我的友情链接
查看>>
LVS启(禁)用成员
查看>>
innobackupex 备份报错
查看>>
2016 IT 运维工作计划及学习
查看>>
将一个数的二进制位模式从左到右翻转并输出
查看>>
我的友情链接
查看>>
加速与缓存技术之Varnish
查看>>
jQuery学习之jQuery Ajax用法详解
查看>>