import提高致使Fundebug報錯:「請配置apikey」

摘要: 解釋一下「請配置apikey」報錯的緣由。javascript

部分Fundebug用戶使用import來導入js文件時,出現了"請配置apikey"的報錯,這是因爲import提高致使的,下面我會詳細解釋一下這一點。java

import提高

關於import提高,咱們能夠參考阮一峯的《ECMAScript 6 入門》es6

import命令具備提高效果,會提高到整個模塊的頭部,首先執行。npm

foo();

import { foo } from 'my_module';

上面的代碼不會報錯,由於import的執行早於foo的調用。這種行爲的本質是,import命令是編譯階段執行的,在代碼運行以前。小程序

所以,即便咱們把import語句寫在後面,它仍然會在其餘語句以前執行微信小程序

import提高爲什麼致使Fundebug報錯?

Fundebug用戶應該清楚,在接入fundebug-javascript插件以後,須要配置apikey,以下:api

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提高,代碼的實際執行順序以下:spa

// 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用戶龍哥的反饋和協助!

參考

關於Fundebug

Fundebug專一於JavaScript、微信小程序、微信小遊戲、支付寶小程序、React Native、Node.js和Java線上應用實時BUG監控。 自從2016年雙十一正式上線,Fundebug累計處理了10億+錯誤事件,付費客戶有Google、360、金山軟件、百姓網等衆多品牌企業。歡迎你們免費試用

版權聲明

轉載時請註明做者Fundebug以及本文地址:
https://blog.fundebug.com/2019/02/26/import-cause-fundebug-apikey-error/

相關文章
相關標籤/搜索