首页 > 其他分享 >如何将 css 从 Application bundle 资源中剥离出来

如何将 css 从 Application bundle 资源中剥离出来

时间:2023-04-06 20:02:18浏览次数:33  
标签:styles src bundle Application theme Bundle css

为了提高 Angular 加载性能,一种思路就是按需加载 CSS 样式表,而不是把它们打包到 application bundle 中去。

Web 应用的 Application Bundle 是一个包含所有应用程序代码和资源的文件集合,它们被打包在一起以便于部署和分发。Application Bundle 通常包含 HTML、CSS 和 JavaScript 文件,以及任何相关的图像、字体和其他静态资源。

Application Bundle 的主要目的是让 Web 应用程序可以独立运行,而不需要依赖于特定的服务器或环境。这使得开发人员可以轻松地将应用程序部署到不同的服务器上,或将其分发给其他用户。

Web 应用的 Application Bundle 通常包含了应用程序的代码、样式、图像、字体、配置文件等资源,以及一个 HTML 文件,作为应用程序的入口点。此外,它还可以包含一些用于配置应用程序运行环境的文件,比如 JavaScript 包管理器的配置文件、服务器配置文件等。

Web 应用的 Application Bundle 可以通过各种方式分发,例如通过 Web 服务器提供下载、通过应用商店发布、通过 P2P 分发等方式。在使用 Application Bundle 时,用户可以方便地安装和卸载应用程序,而无需手动配置运行环境或处理依赖项。同时,开发人员也可以使用 Application Bundle 来简化应用程序的部署过程,提高开发效率和用户体验。

常见的 Application Bundle 格式包括 ZIP、TAR 和 JAR 等。另外,现代 Web 应用程序框架,如 React、Vue 和 Angular 等,也提供了内置的工具和命令行接口,可以帮助开发人员轻松地构建和打包应用程序。

假设我有一个 Angular 应用,除了 main.css 之外,我还有下面两个 css 文件:

  • src/styles/themes/theme-light.css
  • src/styles/themes/theme-dark.css
    Next, you would have them in angular.json’s styles option:

这些 css 文件出现在 angular.json 文件的 styles 区域:

"styles": [
    "src/styles.css",
    "src/styles/themes/theme-light.css",
    "src/styles/themes/theme-dark.css"
  ]

默认情况下,这些 css 都是 Application bundle 的一部分。

对 angular.json 做一些简单的修改,可以让 css 按需加载:

"styles": [
    "src/styles.css",
    {
      "input": "src/styles/themes/theme-light.css",
      "inject": false,
      "bundleName": "theme-light"
    },
    {
      "input": "src/styles/themes/theme-dark.css",
      "inject": false,
      "bundleName": "theme-dark"
    }
  ]

两个新的 option:

  • inject: 设置这个 false 将不会包含来自“input”路径的文件在 bundle 中
  • bundleName:将创建一个单独的包,其中包含来自“输入”路径的样式表

重新执行 ng build,会发现这两个 css 文件构建生成了额外的 bundle 文件:

标签:styles,src,bundle,Application,theme,Bundle,css
From: https://www.cnblogs.com/sap-jerry/p/17293972.html

相关文章

  • 用CSS一分钟写出打字动画
    HTML<div>没有空白的人生,永远都不会有心灵的宁静和精神的愉悦。</div>CSS3*{margin:0;padding:0;box-sizing:border-box;}body{text-align:center;display:flex;justify-content:center;align-items:center;}div{width:390p......
  • 实现和CSS一样的easing动画?直接看Mozilla、Chromium源码!
    前言在上一篇丝滑的贝塞尔曲线:从数学原理到应用介绍贝塞尔曲线实现动画时给自己留了一个坑,实现的动画效果和CSS的transition-timing-function:cubic-bezier差别较大,如下图所示,红色为Linear、绿色为CSS的cubic-beizer、蓝色为自己实现的cbezier。本着有坑必填的原则,直接把Mozilla......
  • css自定义复选框和单选框
    <!DOCTYPEhtml><html><head><metacharset="UTF-8"><title></title></head><styletype="text/css">*{margin:0;padding:0;box-sizing:border-box;}......
  • React的行内样式与CSS
    如何为组件添加CSS的class?传递一个字符串作为className属性:render(){return<spanclassName="menunavigation-menu">Menu</span>}CSS的class依赖组件的props或state的情况很常见:render(){letclassName='menu';if(this.props.isActive)......
  • 解决在创建springboot项目中遇到:Error:(3, 32) java: 无法访问org.springframework.bo
    解决在创建springboot项目中遇到:Error:(3,32)java:无法访问org.springframework.boot.SpringApplication File--->ProjectStructure    选择对应版本        File--->Settings--->Build,Execution,Deployment    修改对应版本 ......
  • CSS笔记(待完善)
    CSS笔记css权重ID(100)>class(10)>element(1)css最高权重!important块元素(block)可以设置宽度和高度,独立成行。h1~h6、p、div、ul、li行内元素(内联元素、块级元素)(inline)不可以设置宽度和高度,不独立成行a、span行内块元素(inline-block)可以设置宽度和高度,不独立......
  • python-爬虫-css提取-写入csv-爬取猫眼电影榜单
    猫眼有一个电影榜单top100,我们将他的榜单电影数据(电影名、主演、上映时间、豆瓣评分)抓下来保存到本地的excle中本案例使用css方式提取页面数据,所以会用到以下库importtimeimportrequestsimportparsel#解析库,解析cssimportcsv#爬取的数据写入csv创建csv文件标头信息......
  • 前端开发-CSS
    三种CSS写法1.在标签内书写2.在head中书写3.在外部文件书写 各种选择器常用:类选择器,标签选择器,后代选择器少用:ID选择器,属性选择器    多个样式覆盖问题:1.样式不同时一起作用2.样式相同时,取style中排序后面的3.若要强制使用,则添加important,如color:red!imp......
  • js 修改当前的css
    CSSStyleSheet.insertRule()CSSStyleSheet.insertRule(".red::before{color:lightgray;content:"测试"}",0)CSSStyleSheet.addRule()已经移除废弃stylesheet.deleteRule(index)CSSStyleSheet.replace()详情见官网https://developer.mozilla.org/......
  • 怎么利用CSS实现HTML5响应式导航栏
    在html5中实现响应式导航栏的方法有很多种,如何利用纯CSS来现实这一功能,在这里小编就通过实例来和大家讲解,纯CSS实现的HTML5响应式导航栏的方法和技巧。目前响应试web页面已经逐渐开始盛行,除了将页面的内容以及布局结构实现响应试以外,剩下的重点就是实现导航栏的响应试,当然方法有很......