Optimize

      Keep your projects lean, responsive, and maintainable so you can deliver the best experience and focus on more important jobs.

      Lean Sass imports

      When using Sass in your asset pipeline, make sure you optimize Bootstrap by only @importing the components you need. Your largest optimizations will likely come from the Layout & Components section of our bootstrap.scss.

      // Configuration
      @import "functions";
      @import "variables";
      @import "mixins";
      @import "utilities";
      
      // Layout & components
      @import "root";
      @import "reboot";
      @import "type";
      @import "images";
      @import "containers";
      @import "grid";
      @import "tables";
      @import "forms";
      @import "buttons";
      @import "transitions";
      @import "dropdown";
      @import "button-group";
      @import "nav";
      @import "navbar";
      @import "card";
      @import "accordion";
      @import "breadcrumb";
      @import "pagination";
      @import "badge";
      @import "alert";
      @import "progress";
      @import "list-group";
      @import "close";
      @import "toasts";
      @import "modal";
      @import "tooltip";
      @import "popover";
      @import "carousel";
      @import "spinners";
      @import "offcanvas";
      
      // Helpers
      @import "helpers";
      
      // Utilities
      @import "utilities/api";
      

      If you’re not using a component, comment it out or delete it entirely. For example, if you’re not using the carousel, remove that import to save some file size in your compiled CSS. Keep in mind there are some dependencies across Sass imports that may make it more difficult to omit a file.

      Lean JavaScript

      Bootstrap’s JavaScript includes every component in our primary dist files (bootstrap.js and bootstrap.min.js), and even our primary dependency (Popper) with our bundle files (bootstrap.bundle.js and bootstrap.bundle.min.js). While you’re customizing via Sass, be sure to remove related JavaScript.

      For instance, assuming you’re using your own JavaScript bundler like Webpack or Rollup, you’d only import the JavaScript you plan on using. In the example below, we show how to just include our modal JavaScript:

      // Import just what we need
      
      // import 'bootstrap/js/dist/alert';
      // import 'bootstrap/js/dist/button';
      // import 'bootstrap/js/dist/carousel';
      // import 'bootstrap/js/dist/collapse';
      // import 'bootstrap/js/dist/dropdown';
      import 'bootstrap/js/dist/modal';
      // import 'bootstrap/js/dist/popover';
      // import 'bootstrap/js/dist/scrollspy';
      // import 'bootstrap/js/dist/tab';
      // import 'bootstrap/js/dist/toast';
      // import 'bootstrap/js/dist/tooltip';
      

      This way, you’re not including any JavaScript you don’t intend to use for components like buttons, carousels, and tooltips. If you’re importing dropdowns, tooltips or popovers, be sure to list the Popper dependency in your package.json file.

      Default Exports

      Files in bootstrap/js/dist use the default export, so if you want to use one of them you have to do the following:

      import Modal from 'bootstrap/js/dist/modal'
      
      const modal = new Modal(document.getElementById('myModal'))
      

      Autoprefixer .browserslistrc

      Bootstrap depends on Autoprefixer to automatically add browser prefixes to certain CSS properties. Prefixes are dictated by our .browserslistrc file, found in the root of the Bootstrap repo. Customizing this list of browsers and recompiling the Sass will automatically remove some CSS from your compiled CSS, if there are vendor prefixes unique to that browser or version.

      Unused CSS

      Help wanted with this section, please consider opening a PR. Thanks!

      While we don’t have a prebuilt example for using PurgeCSS with Bootstrap, there are some helpful articles and walkthroughs that the community has written. Here are some options:

      Lastly, this CSS Tricks article on unused CSS shows how to use PurgeCSS and other similar tools.

      Minify and gzip

      Whenever possible, be sure to compress all the code you serve to your visitors. If you’re using Bootstrap dist files, try to stick to the minified versions (indicated by the .min.css and .min.js extensions). If you’re building Bootstrap from the source with your own build system, be sure to implement your own minifiers for HTML, CSS, and JS.

      Nonblocking files

      While minifying and using compression might seem like enough, making your files nonblocking ones is also a big step in making your site well-optimized and fast enough.

      If you are using a Lighthouse plugin in Google Chrome, you may have stumbled over FCP. The First Contentful Paint metric measures the time from when the page starts loading to when any part of the page’s content is rendered on the screen.

      You can improve FCP by deferring non-critical JavaScript or CSS. What does that mean? Simply, JavaScript or stylesheets that don’t need to be present on the first paint of your page should be marked with async or defer attributes.

      This ensures that the less important resources are loaded later and not blocking the first paint. On the other hand, critical resources can be included as inline scripts or styles.

      If you want to learn more about this, there are already a lot of great articles about it:

      Always use HTTPS

      Your website should only be available over HTTPS connections in production. HTTPS improves the security, privacy, and availability of all sites, and there is no such thing as non-sensitive web traffic. The steps to configure your website to be served exclusively over HTTPS vary widely depending on your architecture and web hosting provider, and thus are beyond the scope of these docs.

      Sites served over HTTPS should also access all stylesheets, scripts, and other assets over HTTPS connections. Otherwise, you’ll be sending users mixed active content, leading to potential vulnerabilities where a site can be compromised by altering a dependency. This can lead to security issues and in-browser warnings displayed to users. Whether you’re getting Bootstrap from a CDN or serving it yourself, ensure that you only access it over HTTPS connections.

      返回頂部
      主站蜘蛛池模板: 福利视频一区二区牛牛| 日韩精品中文字幕无码一区| 亚洲中文字幕丝袜制服一区 | 一区二区无码免费视频网站| 人妻无码一区二区三区AV| 无码少妇一区二区浪潮av| 中文字幕日韩一区| 丝袜人妻一区二区三区| 日韩色视频一区二区三区亚洲| 91精品国产一区| 国产在线无码一区二区三区视频| 无码AⅤ精品一区二区三区| 日韩精品一区二区三区老鸦窝| 精品动漫一区二区无遮挡| 亚洲一区二区三区免费视频| 国产午夜精品一区二区三区嫩草 | 亚洲第一区精品观看| 琪琪see色原网一区二区| 北岛玲在线一区二区| 成人精品一区二区三区电影| 中文字幕精品一区二区| 竹菊影视欧美日韩一区二区三区四区五区 | 亚洲日韩一区二区三区| 香蕉久久一区二区不卡无毒影院 | 国产精品亚洲一区二区无码| 中文字幕乱码一区久久麻豆樱花| 精品永久久福利一区二区| 极品尤物一区二区三区| 成人精品一区二区激情| 北岛玲在线一区二区| 国产午夜精品一区二区三区小说 | 日本一区二区三区久久| 国产日韩综合一区二区性色AV| 国产精品一区二区在线观看| 精品女同一区二区| 中文字幕人妻无码一区二区三区| 亚洲AV无码一区东京热| 伊人久久大香线蕉AV一区二区| 国产成人一区二区三区免费视频| 成人精品一区二区电影| 久久国产精品免费一区二区三区|