关于 import 提升,我们可以参考阮一峰的。
import 命令具有提升效果,会提升到整个模块的头部,首先执行。
上面的代码不会报错,因为 import 的执行早于 foo 的调用。这种行为的本质是,import 命令是编译阶段执行的,在代码运行之前。
因此,即使我们把 import 语句写在后面,它仍然会在其他语句之前执行。
apikey: "API-KEY"
})
假设我们还需要 import 一个test.js文件,这个文件会抛出一个 Error,如下:
一切看起来没有问题:
import * as fundebug from "fundebug-javascript";
fundebug.init({
apikey: "API-KEY"
import "./test";
但是,根据 import 提升,代码的实际执行顺序如下:
这种情况下,第二行代码就会抛出错误,导致 apikey 复制语句不会执行,从而导致报错:“请配置 apikey”。
我们写这篇博客的目的仅仅是解释一下原因,并分享一个非常简单的知识点“import 提升”。
仅供参考,实际上没有必要这样做。
新建一个配置文件config.js,在这个文件中配置 apikey:
fundebug.init({
apikey: "API-KEY"
import 配置文件:
最后,感谢 Fundebug 用户龙哥的反馈和协助!