在 ASP.NET Core 中进行打包 (Bundling) 和紧缩 (Minification)

这篇文章讲介绍在 ASP.NET Core 中进行打包和紧缩操作。 对于 JavaScript 代码和 CSS 代码的打包和紧缩可以提高 ASP.NET Core Web 应用的性能。

什么是打包 (bundling) ?

打包时将多个文件合并为单个文件的过程。例如,我们可以将多个小型的 JavsScript 文件合并为单个 JavaScript 文件以提高下载的性能,对于 CSS 也是如此。更少的文件数量意味着更少的 HTTP 请求数量,可以提高页面加载的性能。

什么是紧缩 (BundlerMinifier) ?

紧缩是在不影响功能的前提下,删除不需要的内容,例如 JavaScript 中的注释,或者将长的变量名称替换为更短的名称的过程。它会删除注释,额外的空白,以及将长的变量名称转换为更短的名称。

内置的 BundlerMinifier 工具

BundlerMinifier 是内置于 VS 2019 中,以扩展形式存在的工具。它可以完全与 ASP.NET Core 项目集成。来处理对于 JavaScript 和 CSS 的打包和紧缩。

VS 2022 中的版本:https://marketplace.visualstudio.com/items?itemName=Failwyn.BundlerMinifier64

Step 1

在 VS 2019 或者 2022 的菜单中选择 Extensions,然后点击 Manage Extensions 菜单项,这样会弹出管理扩展的窗口。

Step 2

在右边的搜索栏中输入 Bundler ,在找到之后,点击下载并安装。

它会要求你关闭 Visual Studio,然后就会启动安装过程。在它提示你修改的时候,点击修改就可以完成。

Step 3

现在重新启动 Visual Studio,打开你的 ASP.NET Core 项目,打开 wwwroot 文件夹,选择准备进行紧缩的文件,右键之后,选择 Bunder & Minifier,选择 Minify File。它就会创建与你的文件同名的紧缩版本,并在项目中生成一个 bundleconfig.json 文件

其中内容为:

[
{
"outputFileName": "wwwroot/css/style.min.css",
"inputFiles": [
"wwwroot/css/style.css"
]
}
]

这个 bundleconfig.json 文件是标准的 JSON 文件,非常易于理解。在该文件中,每个打包的输出文件名称使用 outputFileName 定义,对应的 inputFiles 表示用来打包的源文件数组。每个数组对应一个输出文件。还可以通过 bundleconfig.json 文件来控制紧缩的过程,包括重命名本地的 JavaScript 文件以及是否为 JavaScript 生成 SourceMap 文件。

如果你不是在 JavaScript 或者 CSS 文件上右键,而是在 bundleconfig.json 文件上右键,那么你会得到更多的功能。

如果你选择了 Enable bundle on build 功能,那么 Visual Studio 就会下载并安装对应的 NuGet 包,如果你还没有安装的话。

参考资料

在 ASP.NET Core 中进行打包 (Bundling) 和紧缩 (Minification)的更多相关文章

  1. 将 ASP.Net Core WebApi 应用打包至 Docker 镜像

    将 ASP.Net Core WebApi 应用打包至 Docker 镜像 运行环境为 Windows 10 专业版 21H1, Docker Desktop 3.6.0(67351),Docker ...

  2. ASP.NET Core 中的那些认证中间件及一些重要知识点

    前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...

  3. Asp.net Core中使用Session

    前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Cor ...

  4. 在ASP.NET Core中使用百度在线编辑器UEditor

    在ASP.NET Core中使用百度在线编辑器UEditor 0x00 起因 最近需要一个在线编辑器,之前听人说过百度的UEditor不错,去官网下了一个.不过服务端只有ASP.NET版的,如果是为了 ...

  5. ASP.NET Core中的依赖注入(1):控制反转(IoC)

    ASP.NET Core在启动以及后续针对每个请求的处理过程中的各个环节都需要相应的组件提供相应的服务,为了方便对这些组件进行定制,ASP.NET通过定义接口的方式对它们进行了"标准化&qu ...

  6. ASP.NET Core中的依赖注入(2):依赖注入(DI)

    IoC主要体现了这样一种设计思想:通过将一组通用流程的控制从应用转移到框架之中以实现对流程的复用,同时采用"好莱坞原则"是应用程序以被动的方式实现对流程的定制.我们可以采用若干设计 ...

  7. ASP.NET Core中的依赖注入(3): 服务的注册与提供

    在采用了依赖注入的应用中,我们总是直接利用DI容器直接获取所需的服务实例,换句话说,DI容器起到了一个服务提供者的角色,它能够根据我们提供的服务描述信息提供一个可用的服务对象.ASP.NET Core ...

  8. ASP.NET Core中的依赖注入(4): 构造函数的选择与服务生命周期管理

    ServiceProvider最终提供的服务实例都是根据对应的ServiceDescriptor创建的,对于一个具体的ServiceDescriptor对象来说,如果它的ImplementationI ...

  9. ASP.NET Core 中文文档 第二章 指南(4.6)Controller 方法与视图

    原文:Controller methods and views 作者:Rick Anderson 翻译:谢炀(Kiler) 校对:孟帅洋(书缘) .张仁建(第二年.夏) .许登洋(Seay) .姚阿勇 ...

  10. ASP.NET Core 中文文档 第三章 原理(1)应用程序启动

    原文:Application Startup 作者:Steve Smith 翻译:刘怡(AlexLEWIS) 校对:谢炀(kiler398).许登洋(Seay) ASP.NET Core 为你的应用程 ...

随机推荐

  1. request和response请求包中的各项解释

    Request Response

  2. Spring技术书的代码资源下载

    我是清华社编辑,这些资源获得作者授权,免费提供给读者个人学习使用.禁止任何形式的商用. 二维码用微信扫,按提示填写你的邮箱,转到电脑上打开邮箱下载.清华国企网盘,比较快速.安全.放心下载. 百度网盘链 ...

  3. push_back和 emplace_back背后的逻辑

    push_back 与 emplace_back 的区别 push_back: 功能:将一个对象(或其副本)添加到 vector 的末尾. 参数:接受一个对象(或其副本)的引用. 过程: 如果传入的是 ...

  4. 墨天轮国产数据库沙龙 | 张晓庆:GoldenDB分布式数据库的自动安装与备份恢复

    在共同推进国产化生态发展的进程下,墨天轮正式推出"墨天轮国产数据库沙龙"系列直播活动,将定期邀请各国产数据库产品专家.掌门人,共同探讨如何达成技术"自主可控"的 ...

  5. Javascript的基本数据类型和引用数据类型有哪些?null 和 undefined的区别

    基本数据类型 : number string boolean null undefined 引用数据类型: object   -->  function array function and a ...

  6. 55.父页面通过ifaram嵌套子页面,如何固定子页面菜单

    使用固定定位 :

  7. 运营商业务系统基于 KubeSphere 的容器化实践

    本篇文章是 KubeSphere 2020 年度 Meetup 上讲师宋磊分享内容整理而成. 大家好,我是宋磊,在运营商的一个科技子公司任职,主要做大数据业务.我主要负责公司的 IaaS 层和 Paa ...

  8. 黑客工具:Amass – 寻找子域

    安装 所有信息都可以在 OWASP Amass 项目的 Github 页面上找到:https://github.com/OWASP/Amass.我们将一起完成安装过程,以便更快地部署. 转到发布页面并 ...

  9. 如何在cnblogs的发文中使用自定义地址作为发文链接

    要知道在cnblogs中发表内容后其默认的链接地址都是一串数字的形式,比如本篇的默认地址:https://www.cnblogs.com/xyz/p/18461898 但是为了让发表的内容更有个性化, ...

  10. 【Linux Ops】如何无痛升级 glibc

    [环境]kos5.8sp2, kernel5.10 最近工作中需要搭建一个软件环境,其依赖的 glibc 版本较高,因此在安装时给出了以下错误: xxx: /lib64/libc.so.6: vers ...