摘要: 解釋一下「請配置apikey」報錯的緣由。javascript
部分Fundebug用戶使用import來導入js文件時,出現了"請配置apikey"的報錯,這是因爲import提高致使的,下面我會詳細解釋一下這一點。java
關於import提高,咱們能夠參考阮一峯的《ECMAScript 6 入門》。es6
import命令具備提高效果,會提高到整個模塊的頭部,首先執行。npm
foo(); import { foo } from 'my_module';
上面的代碼不會報錯,由於import的執行早於foo的調用。這種行爲的本質是,import命令是編譯階段執行的,在代碼運行以前。小程序
所以,即便咱們把import語句寫在後面,它仍然會在其餘語句以前執行。微信小程序
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專一於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/