【问题标题】:Angular 10 downloads compiled assets twiceAngular 10 两次下载已编译的资产
【发布时间】:2021-02-26 13:11:12
【问题描述】:

我有一个 Angular 10 项目,其中编译的资产文件下载了两次。从附图中可以看出,runtime-es2015.jspolyfills-es2015.jsmain-es2015.js 都下载了两次。

检查这些文件的内容后,发现有可疑代码似乎在提示脚本重新下载自身。我正在努力找出为什么它包含在编译代码中:

var a,f=document.createElement("script");f.charset="utf-8",f.timeout=120,c.nc&&f.setAttribute("nonce",c.nc),f.src=function(e){return c.p+""+({0:"common"}[e]||e)+"-es2015."+ .....

我发现的所有其他答案都表明这是由于 Angular 的不同加载而导致的预期行为,但我相信并非如此。重复文件具有完全相同的内容,而如果这是 Angular 的差异加载,我希望文件内容会有所不同,并且文件内容也会被命名为 -es5 而不是 -es2015。我们已经在这样的代码中处理了差异加载:

<script type="module" type="text/javascript" src="angular/runtime-es2015.js?ver={{ config('assets.assets_version') }}"></script>
<script type="module" type="text/javascript" src="angular/polyfills-es2015.js?ver={{ config('assets.assets_version') }}"></script>
<script type="module" type="text/javascript" src="angular/main-es2015.js?ver={{ config('assets.assets_version') }}"></script>

<script nomodule type="text/javascript" src="angular/runtime-es5.js?ver={{ config('assets.assets_version') }}"></script>
<script nomodule type="text/javascript" src="angular/polyfills-es5.js?ver={{ config('assets.assets_version') }}"></script>
<script nomodule type="text/javascript" src="angular/main-es5.js?ver={{ config('assets.assets_version') }}"></script>

为什么编译后的文件中会包含可疑代码?对此的任何帮助将不胜感激。

【问题讨论】:

    标签: javascript angular compilation


    【解决方案1】:

    我通过玩更多找到了解决方案。我只是从导致问题的 3 个脚本中删除了 type="text/javascript"。我假设我的浏览器看到了两种类型定义,因此决定下载两次脚本。

    可疑代码是一个红鲱鱼,我现在意识到它的目的是延迟加载我们 Angular 项目的不同模块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-04
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多