在 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 为你的应用程 ...
随机推荐
- USB Type-C Power Role
USB Power Role 是指 USB 设备在供电方面所扮演的角色,主要分为供电方(Provider)和受电方(Consumer).在 USB 供电协议中,电源角色的管理尤为重要,尤其是在 USB ...
- 如何让img图片居中
说明:img是行内块元素,用一个盒子(父元素)嵌套img(子元素) text-align:center;可以让父元素为块元素的行内块或行内元素水平居中: vaertical-align:middle; ...
- 宝塔部署java后端项目
1. 安装插件 宝塔面板找到软件商店然后搜索 Java java项目管理安装 安装后点击设置准备安装 tomcat 2. 添加项目
- KubeSphere 社区双周报 | OpenFunction v1.2.0 发布 | 2023.09.15-09.28
KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书.新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列 ...
- 云原生周刊:Kubernetes 1.27 服务器端字段校验和 OpenAPI V3 进阶至 GA
开源项目推荐 KubeView KubeView 是一个 Kubernetes 集群可视化工具和可视化资源管理器.它允许用户在集群内部运行命令,并查看集群内部的资源使用情况.容器运行状态.网络流量等. ...
- 经典排序算法(C语言、Java版)
排序 比较 分类 比较排序的时间复杂度的下界O(nlogn) 对于n个待排序元素,在未比较时,可能的正确结果有n!种.在经过一次比较后,其中两个元素的顺序被确定,所以可能的正确结果剩余n!/2种(确定 ...
- SpringBoot数据访问,配置数据源
配置文件目录 配置数据源jdbc版本 JDBC(.tomcat.jdbc.pool.DataSource作为数据源) <?xml version="1.0" encoding ...
- 线性枚举(C语言)
1.求最大值 比如求一个线性表中的最大值,可以先设定一个最大值,把它初始化为一个非常小的数,然后遍历给定的线性表,将其中的每个元素和目前的最大值比较,如果比它大,则更新这个最大值: 如果比它小,就不做 ...
- 【小记】Docker容器间SSH公钥自动交换实现免密登录的一次尝试
咋想到这茬了 最近开始忙毕设的事儿了,想部署个伪分布式的Spark + Hadoop集群来进行测试.思来考去,最终咱把目光放在了Docker上. 盘了两天,发现这玩意意外的有趣,镜像构建好后开箱即用, ...
- Linux再学!
第三篇Linux入门 一.linux基本指令 1.Linux根目录为/,后续路径用/分隔,如/home/admin 2.Linux命令 基础格式: command: 命令本身 -options:[可选 ...