问题标签 [bundling-and-minification]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1419 浏览

asp.net - 我可以将 App_Themes css 文件与 Microsoft.Web.Optimization 捆绑在一起吗?

有谁知道是否可以使用 Microsoft.Web.Optimization 捆绑和缩小 WebForms App_Themes?

0 投票
2 回答
921 浏览

javascript - 如何在我们的 mvc3 Web 应用程序的 prod 构建中删除 JS 日志记录调用?

在我们的 MVC3 Web 应用程序的整个 JS 中,我们有很多对我们的日志记录方法(只是包装 console.log)的调用,我想在我们构建测试和生产构建时从 JavaScript 中删除它们。

目前我们正在使用捆绑和缩小 nuget 包将我们的 JS 捆绑和缩小到一个大的缩小文件中,但我希望它也能删除对日志记录方法的调用。

我们确实有一种机制可以用空函数替换日志记录方法,因此它们在生产中不会做任何工作,但它们仍然被调用并传入各种参数。除此之外,还有“大”字符串已通过并且可以删除那些,从而减小文件大小。

在我看来,理想的解决方案是以某种方式解析 JavaScript 并检测/删除对这些方法的调用。最好在某种 JavaScript 引擎中,而不仅仅是正则表达式。

无论哪种方式,我只希望在生产中提供的最终 JavaScript 中删除对日志记录方法的调用。有谁知道我将如何完成这个额外的缩小?

0 投票
2 回答
3676 浏览

asp.net-mvc - 本地化的 scriptbundle 解决方案

您好我目前正在使用带有 System.Web.Optimization 的 asp.net MVC 4 rc。由于我的网站需要根据用户偏好进行本地化,因此我正在使用 jquery.globalize 插件。

我非常想继承 ScriptBundle 类并根据System.Threading.Thread.CurrentThread.CurrentUICulture. 看起来像这样:

例如,如果 ui 文化是“en-GB”,我希望拾取以下文件(当然缩小,如果可能的话也缓存,直到脚本文件或 currentui 文化改变)。

  • “~/Scripts/jquery.globalize/globalize.js”
  • "~/Scripts/jquery.globalize/globalize-en-GB.js" <-- 如果此文件在服务器文件系统上不存在,则回退到 globalize-en.js。

我尝试使用以下内容重载 Include 方法,但这不起作用,因为它不是根据请求进行评估,而是在应用程序启动时进行评估。

谢谢

康斯坦丁诺斯

0 投票
1 回答
1874 浏览

asp.net-mvc - MVC4 捆绑和模拟是否进行任何缓存?

我想使用 MVC4 的捆绑和模拟功能,但我担心模拟。是否每次客户端请求 css 和 javascript 时,捆绑/模拟过程都有效。如果是这样,那么每次都没有CPU开销吗?

0 投票
1 回答
4097 浏览

asp.net-mvc-4 - mvc4 捆绑强类型捆绑包

所以 MVC 4 引入了脚本和样式捆绑。这允许这样做:

然后在像这样的剃刀视图中使用:

我的问题是为什么我必须输入"~/bundles/mobile"?有没有办法获得智能以获取强类型对象?否则我必须去查一下以确保我称它为同一个东西。

我想做这样的事情:(我知道这不会编译,这只是一个例子)

或有影响的东西。

编辑:答案很简单。正如所@Hao Kung指出的,@Styles.Render只需要一个 url 字符串路径。我创建了一个类来保存路径。

在任何页面中,您只需执行

你有它。您需要付出一些额外的努力,但至少现在它是强类型的。

0 投票
3 回答
33625 浏览

asp.net-mvc-4 - 为什么 MVC4 @Styles.Render() 在调试模式下没有按预期运行

我正在 MVC4 中实现捆绑和缩小支持并对其进行设置,以便它可以为我自动编译我的 Bootstrap .less 文件。我的 BundleConfig.cs 文件中有以下代码

TwitterBootsrapLessTransform 如下(它比我想要的更复杂,因为需要将 sub .less 文件导入 dotLess)

在我的基础 _Layout.cshtml 页面上,我尝试通过这样做来呈现 css 文件

正如mvc教程所建议的,但客户端浏览器最终请求的文件是

这会导致错误。如果我将以下链接按基本布局页面放入,它会按预期工作。

为什么@Styles.Render() 在调试模式下的行为方式不同?它在发布模式下工作。我可以理解您不希望它在调试中捆绑和缩小,但我如何才能强制此捆绑始终以相同的方式工作?

0 投票
3 回答
17726 浏览

javascript - MVC4部分视图javascript捆绑问题

我正在使用 Visual Studio 11 开发一个项目 ASP.net 4、MVC4(RC)。我正在尝试渲染一个渲染局部视图的 MVC4 Razor 视图。我的部分视图需要一些 javascript。在我的部分视图中,当我将我的 javascript 包含在脚本部分中时,它似乎没有加载。

如果我删除脚本部分,它会失败,因为在文档就绪代码运行时尚未加载 jquery 库(捆绑并呈现在我的 _Layout.cshtml 页面上)。

_Layout 页面代码加载 jquery 库

有谁知道这个的解决方案,还是我只是以错误的方式去做?它破坏了我的头!

0 投票
2 回答
354 浏览

asp.net-mvc - 捆绑和缩小正在发送旧样式

我按照这篇文章来设置捆绑和缩小,http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

我认为它工作得很好,直到我更新了一些 CSS,但我一直在使用旧样式。我在 Firefox 中工作,我已经清除了缓存,重新启动了浏览器,重新启动了 IIS,甚至重新启动了我的计算机,但没有任何效果。

当我关闭捆绑和缩小

新样式出现,页面看起来应该是这样。重新打开捆绑和缩小,我又得到了旧样式。此外,每当我重建或更改其中一个 css 文件时,都会有一个新的 chache busting 令牌。所以你会认为它正在发送不同的内容,但我仍然得到旧的东西。我什至在其中一个 css 文件中添加了一个测试类,然后下载了缩小的 css 文件,但是我添加的测试类不存在。

有没有其他人遇到过这个问题?

0 投票
3 回答
9257 浏览

asp.net-mvc-3 - GZip system.web.optimization 包

我正在使用新的 System.Web.Optimization 并创建了一个这样的包:

在我看来,我已经添加了这个

在提琴手中,URL 会遇到未来 1 年的过期标头和文本/javascript 的内容类型

在 web.config 中,我有一些用于处理静态 JS 文件的 gzip 代码,但它似乎不适用于缩小的捆绑包。

有没有办法让渲染包 gzip 内容?

0 投票
2 回答
3426 浏览

unit-testing - 是否可以在 MVC4 中对 BundleConfig 进行单元测试?

据我所知,答案是否定的。我看到的问题来自课堂上的Include(params string[])方法System.Web.Optimization.Bundle。这在内部调用System.Web.Optimization.IncludeDirectory(string, string, bool),而后者又使用以下代码:

虽然可以HttpContext.Current在单元测试期间进行设置,但我不知道如何使其.Server.MapPath(string directoryVirtualPath)返回非空字符串。由于DirectoryInfo(string)构造函数在传递空参数时会抛出异常,因此这样的测试总是会失败。

.NET 团队对此有何建议?作为集成测试或用户验收测试的一部分,我们是否必须对捆绑配置进行单元测试?