【问题标题】:Why Can't I Minify Angular.js?为什么我不能缩小 Angular.js?
【发布时间】:2013-09-23 17:43:27
【问题描述】:

我正在尝试使用 Microsoft 的 Web 优化捆绑工具包,它适用于其他一切。

但是,当我尝试要求它缩小 AngularJS 时,我在生成的 Javascript 输出中收到以下错误消息:

“对命名函数表达式的模糊引用”

我什至不知道从哪里开始。 . .

【问题讨论】:

  • 我不是这个意思。 :) 我不是在谈论使用 Angular 的应用程序代码。 Angular 库本身不会缩小。
  • 为什么不使用构建的缩小版本? Angular 发布了所有构建的缩小版本。
  • 公平的问题 - 我想将大约 5-7 个第三方库捆绑在一个缩小的下载中,以简化加载时间。在尝试将所有 5-7 个库的未缩小版本提供给 Microsoft 的缩小捆绑器时,Microsoft 的缩小器在 Angular 上窒息(但没有其他库)。微软的缩小器中一定有一些奇怪的东西,或者 angular.js 中有一些奇怪的东西。

标签: javascript angularjs asp.net-optimization


【解决方案1】:

我认为最好的解决方法是使用 ngmin 预先压缩 Angular 应用程序,然后再使用其他工具进行压缩,以保持依赖注入工作。

https://github.com/btford/ngmin

HTH

【讨论】:

  • 在编写函数时这样做是最好的做法。你不应该依靠一个工具来做你应该做的事情。这为您根本不需要或不想管理的部署或构建过程添加了一个步骤。
  • 我已经按照描述的方式编写了我所有的应用程序代码 - 它缩小了就好了(我所有的服务、控制器等)!我说的是 Angular 库本身。即使没有任何应用程序代码,Angular 也不会缩小,即使它是包中唯一的东西。
  • @Fourth 缩小本身是您必须管理的部署步骤,ngmin 是此步骤的一部分,而不是另一个步骤。您当然可以选择在您的应用中用更多无意义的代码替换它,这取决于您。
  • @blaster 必须有其他东西阻止缩小,Angular 应用程序自己缩小就好了。你应该在没有微软的情况下尝试一下,看看它是怎么回事,也许问题就在那里。
  • 我正在使用微软自己的缩小器来进行缩小。我想要的是能够在一次下载中将多个第三方库捆绑在一起,以优化页面加载时间。例如,要将 jQuery 和 Angular 一起包含在同一个压缩包中。它适用于除 Angular 之外的所有其他库。
【解决方案2】:

这个问题的答案(在我看来不应该被否决,因为它代表了一个真正的问题)是从使用“Microsoft.Web.Optimization”命名空间的旧 Microsoft.Web.Optimization 包升级并确保您使用的是他们最新的,由“System.Web.Optimization”命名空间表示。

在较旧的 Microsoft 包中,Angular 在交给 JsMinify 时会崩溃。在最新版本中不再如此。

一开始我并没有意识到我使用的是该软件包的旧版本,因为软件包名称已更改 - 因此我在它上面旋转了一段时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多