在 ASP.NET Core 中进行打包 (Bundling) 和紧缩 (Minification)
在 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)的更多相关文章
- 将 ASP.Net Core WebApi 应用打包至 Docker 镜像
将 ASP.Net Core WebApi 应用打包至 Docker 镜像 运行环境为 Windows 10 专业版 21H1, Docker Desktop 3.6.0(67351),Docker ...
- ASP.NET Core 中的那些认证中间件及一些重要知识点
前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...
- Asp.net Core中使用Session
前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Cor ...
- 在ASP.NET Core中使用百度在线编辑器UEditor
在ASP.NET Core中使用百度在线编辑器UEditor 0x00 起因 最近需要一个在线编辑器,之前听人说过百度的UEditor不错,去官网下了一个.不过服务端只有ASP.NET版的,如果是为了 ...
- ASP.NET Core中的依赖注入(1):控制反转(IoC)
ASP.NET Core在启动以及后续针对每个请求的处理过程中的各个环节都需要相应的组件提供相应的服务,为了方便对这些组件进行定制,ASP.NET通过定义接口的方式对它们进行了"标准化&qu ...
- ASP.NET Core中的依赖注入(2):依赖注入(DI)
IoC主要体现了这样一种设计思想:通过将一组通用流程的控制从应用转移到框架之中以实现对流程的复用,同时采用"好莱坞原则"是应用程序以被动的方式实现对流程的定制.我们可以采用若干设计 ...
- ASP.NET Core中的依赖注入(3): 服务的注册与提供
在采用了依赖注入的应用中,我们总是直接利用DI容器直接获取所需的服务实例,换句话说,DI容器起到了一个服务提供者的角色,它能够根据我们提供的服务描述信息提供一个可用的服务对象.ASP.NET Core ...
- ASP.NET Core中的依赖注入(4): 构造函数的选择与服务生命周期管理
ServiceProvider最终提供的服务实例都是根据对应的ServiceDescriptor创建的,对于一个具体的ServiceDescriptor对象来说,如果它的ImplementationI ...
- ASP.NET Core 中文文档 第二章 指南(4.6)Controller 方法与视图
原文:Controller methods and views 作者:Rick Anderson 翻译:谢炀(Kiler) 校对:孟帅洋(书缘) .张仁建(第二年.夏) .许登洋(Seay) .姚阿勇 ...
- ASP.NET Core 中文文档 第三章 原理(1)应用程序启动
原文:Application Startup 作者:Steve Smith 翻译:刘怡(AlexLEWIS) 校对:谢炀(kiler398).许登洋(Seay) ASP.NET Core 为你的应用程 ...
随机推荐
- 【赵渝强老师】MySQL高可用架构:MHA
MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating master failover 功能.MHA 在监控到 master 节 ...
- 基于DPAPI+RDP技术实现本地打开远程程序,并映射到本地机器桌面上
本教程使用工具所使用的环境说明: 启动器开发工具:VS2022 启动器所用客户端技术:.NET 8 + WPF 启动器其他技术:DPAPI 启动器发布的可执行程序,系统要求:Windows 7以及以上 ...
- GPT分区和MRB分区
GPT分区和MBR分区都是硬盘分区的方式,但它们有不同的实现方法和优缺点. MBR(Master Boot Record)分区是传统的分区方式,它将硬盘分为四个主分区或者三个主分区和一个扩展分区.在每 ...
- 泛型dotnet
// 什么是泛型List<T> T:表示类型参数,指代任意类型 T可以是任意标识 // 编写代码时使用特殊符号替代位置类型,在实例化或使用/调用时才会进行具体类型的定义 // 特点:重用代 ...
- 在实例化对象的时候new关键字具体做了哪些操作?
a 创建了一个空对象 {}b 通过原型链把空对象和构造函数连接起来__proto__ = prototype c 构造函数的this指向新对象,并执行函数体 d 判断构造函数的返回值,返回对象就使用该 ...
- kotlin协程——>select 表达式(实验性的)
select 表达式(实验性的) select 表达式可以同时等待多个挂起函数,并 选择 第⼀个可⽤的. 在通道中 select 我们现在有两个字符串⽣产者:fizz 和 buzz .其中 fizz ...
- harbor磁盘爆满,执行垃圾回收清理镜像
1.在使用Jenkins发版操作时发现,推送私有仓库harbor报错: received unexpected HTTP status: 500 Internal Server Error 2.想要登 ...
- 云原生周刊:Helm Charts 深入探究 | 2024.3.11
开源项目推荐 Glasskube Glasskube 提供了一个用于 Kubernetes 的缺失的包管理器.它具有图形用户界面(GUI)和命令行界面(CLI).Glasskube 包是具备依赖感知. ...
- KubeSphere 社区双周报 | KubeKey v3.0.2 发布 | 2022-11-24
KubeSphere 从诞生的第一天起便秉持着开源.开放的理念,并且以社区的方式成长,如今 KubeSphere 已经成为全球最受欢迎的开源容器平台之一.这些都离不开社区小伙伴的共同努力,你们为 Ku ...
- house of cat
调用方法 调用链1 house of cat调用链 __malloc_assert 在 2.35 的 glibc 中源码如下 static void __malloc_assert (const ch ...