Angular在第一次编译时找不到名称“ Photon”,在重新编译时找到它

问题描述

我正在电子+角度应用程序中使用Photon engine的javascript库。

我在i == j == k中创建了一个文件夹,用于存放js文件src/vendor文件。我将主要js文件添加到了.d.ts文件夹中的scripts中。我将此行添加到了angular.json文件中:

typings.d.ts

我创建了一个尝试利用其中一个类的服务:

/// <reference path="./vendor/Photon/Photon-Javascript_SDK.d.ts" />

当我运行serve命令(在此之前工作)时,出现以下错误

firstCompile

说它找不到命名空间“ Photon”。如果我更改空格,触发重新编译,则会得到以下提示

secondCompile

,我可以将其加载到我的浏览器/电子客户端中。如果我终止并重新启动serve命令,它将在第一次编译时失败,并在第二次编译时自行修复。

为什么?我该如何解决

我唯一能想到的是第二个编译有更多的块。我正在使用延迟加载,因此服务可能在供应商lib之前加载?但是我本以为会首先引入供应商库?

解决方法: 我已经看到我现在可以将import LoadBalancingClient = Photon.LoadBalancing.LoadBalancingClient; // errors out here @Injectable() export class PhotonMatchMakingService { private loadBalancingClient: LoadBalancingClient; ... 添加到有问题的行中,并且它们不再引起问题……这很可行。我的新理论是他们提供的// @ts-ignore文件在某种程度上格式错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)