未捕获的 ReferenceError:在初始化之前无法访问“GA”

Posted

技术标签:

【中文标题】未捕获的 ReferenceError:在初始化之前无法访问“GA”【英文标题】:Uncaught ReferenceError: Cannot access 'GA' before initialization 【发布时间】:2020-06-02 10:12:55 【问题描述】:

当我使用 ng serve 运行我的 Angular 应用程序时,它可以工作。但是,当我部署(Jboss 或 Tomcat 服务器)相同的 Angular 应用程序时,它会在控制台提供以下内容:

Uncaught ReferenceError: Cannot access 'GA' before initialization
    at main-es2015.faddfe3f773581d6c95a.js:1
    at Module.zUnb (main-es2015.faddfe3f773581d6c95a.js:1)
    at l (runtime-es2015.c5fa8325f89fc516600b.js:1)
    at Object.0 (main-es2015.faddfe3f773581d6c95a.js:1)
    at l (runtime-es2015.c5fa8325f89fc516600b.js:1)
    at t (runtime-es2015.c5fa8325f89fc516600b.js:1)
    at Array.r [as push] (runtime-es2015.c5fa8325f89fc516600b.js:1)
    at main-es2015.faddfe3f773581d6c95a.js:1

我使用ng build --prod ---base-href=myapp 构建了我的模块。

可能出了什么问题?

可选: 我已经在另一个线程上基于solution 尝试过"emitDecoratorMetadata": false。但问题仍然存在。

【问题讨论】:

【参考方案1】:

对于这个问题,我发现这是由于从 typescript 到 javascript 问题的一些编译。我已经设法通过在 ng build 之后手动在 javascript 中初始化 GA(请注意,此 GA 在每次构建编译时动态更改)来解决此问题。并且它修复了。

Gitlab forum 讨论了类似的问题。

进一步解释我的解决方案:

    var GA; // manually declared initializing here.
    return e.ngInjectableDef=ue(factory:function()return new GA,token:GA,providedIn:"root")

【讨论】:

以上是关于未捕获的 ReferenceError:在初始化之前无法访问“GA”的主要内容,如果未能解决你的问题,请参考以下文章

打字稿 - 未捕获的 ReferenceError:未定义导出

未捕获的 ReferenceError:“$ 未定义”[重复]

未捕获的 ReferenceError:未定义 url

未捕获的 ReferenceError:未定义图表

未定义函数 - 未捕获的 ReferenceError

未捕获的 ReferenceError:未定义主干