整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          使用 uncss 刪除頁面未使用的樣式!

          家好,很高興又見面了,我是"高級前端?進階?",由我帶著大家一起關注前端前沿、深入前端底層技術,大家一起進步,也歡迎大家關注、點贊、收藏、轉發,您的支持是我不斷創作的動力。

          什么是 UnCSS

          UnCSS 是一個從樣式表中刪除未使用的 CSS 的工具,可以跨多個文件工作,并支持 Javascript 注入的 CSS。

          UnCSS 刪除未使用規則的過程如下:

          • HTML 文件由 jsdom 加載并執行 JavaScript。
          • 所有樣式表均由 PostCSS 解析。
          • document.querySelector 過濾掉 HTML 文件中找不到的選擇器。
          • 其余規則將轉換回 CSS。

          但是使用 Uncss 需要注意以下幾點:

          • UnCSS 不能在非 HTML 頁面上運行,例如:模板或 PHP 文件。 如果開發者需要針對模板運行 UnCSS,應該從模板生成示例 HTML 頁面,并在這些生成的文件上運行 uncss; 或者運行一個實時的本地開發服務器,并將 uncss 指向該服務器。
          • UnCSS 僅運行在頁面加載時運行的 Javascript。 它不會(也不能)處理在用戶交互(如按鈕單擊)上運行的 Javascript。 必須使用 ignore 選項來保留 Javascript 在用戶交互時添加的類。

          目前 uncss 在 Github 上通過 MIT 協議開源,有超過 9.3k 的 star,194k 的項目依賴量,是一個值得關注的前端開源項目。

          如何使用 UnCSS

          下面是在 Node.js 環境中使用 uncss 的示例:

          var uncss = require('uncss');
          var files = ['my', 'array', 'of', 'HTML', 'files', 'or', 'http://urls.com'],
            options = {
              banner: false,
              csspath: '../public/css/',
              htmlroot: 'public',
              ignore: ['#added_at_runtime', /test\-[0-9]+/],
              ignoreSheets: [/fonts.googleapis/],
              inject: function (window) {
                window.document
                  .querySelector('html')
                  .classList.add('no-csscalc', 'csscalc');
              },
              jsdom: {
                userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X)',
              },
              media: ['(min-width: 700px) handheld and (orientation: landscape)'],
              raw: 'h1 { color: green }',
              report: false,
              strictSSL: true,
              stylesheets: [
                'lib/bootstrap/dist/css/bootstrap.css',
                'src/public/css/main.css',
              ],
              timeout: 1000,
              uncssrc: '.uncssrc',
              userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X)',
            };
          uncss(files, options, function (error, output) {
            console.log(output);
          });
          /* Look Ma, no options! */
          uncss(files, function (error, output) {
            console.log(output);
          });
          /* Specifying raw HTML */
          var rawHtml = '...';
          uncss(rawHtml, options, function (error, output) {
            console.log(output);
          });

          值得一提的是,UnCSS 還可以與其他 JavaScript 構建系統結合使用,例如: Grunt、Broccoli 或 Gulp,只需要安裝特定的庫即可。

          • grunt-uncss
          • gulp-uncss
          • broccoli-uncss

          在 CLI 環境中使用命令如下:

          Usage: uncss [options] <file or URL, ...>
              e.g. uncss https://getbootstrap.com/docs/3.3/examples/jumbotron/ > stylesheet.css
          
          Options:
          
            -h, --help                            output usage information
            -V, --version                         output the version number
            -i, --ignore <selector, ...>          Do not remove given selectors
            -m, --media <media_query, ...>        Process additional media queries
            -C, --csspath <path>                  Relative path where the CSS files are located
            -s, --stylesheets <file, ...>         Specify additional stylesheets to process
            -S, --ignoreSheets <selector, ...>    Do not include specified stylesheets
            -r, --raw <string>                    Pass in a raw string of CSS
            -t, --timeout <milliseconds>          Wait for JS evaluation
            -H, --htmlroot <folder>               Absolute paths' root location
            -u, --uncssrc <file>                  Load these options from <file>
            -n, --noBanner                        Disable banner
            -a, --userAgent <string>              Use a custom user agent string
            -I, --inject <file>                   Path to javascript file to be executed before uncss runs
            -o, --output <file>                   Path to write resulting CSS to

          請注意,可以將本地文件路徑(由 glob 處理)和 URL 傳遞給程序。

          • banner(布爾值,默認值:true):是否應在已處理 CSS 中的每個文件塊之前添加banner。
          • csspath(字符串):CSS 文件與 HTML 文件相關的路徑。 默認情況下,UnCSS 使用 <link rel="stylesheet" href="path/to/file.css"/> 中指定的路徑。
          • htmlroot(字符串):項目根目錄所在的位置。 例如,如果 HTML 引用具有根相對 URL 的本地文件,即 href="/css/style.css"則很有用。
          • ignore (string[]):提供不應被 UnCSS 刪除的選擇器列表。 例如,通過用戶與頁面交互(懸停、單擊)添加的樣式,因為 UnCSS 尚無法檢測到這些樣式。 文字名稱和正則表達式模式都可以識別。 否則,可以在特定選擇器之前添加注釋:
          /* uncss:ignore */
          .selector1 {
              /* this rule will be ignored */
          }
          .selector2 {
              /* this will NOT be ignored */
          }
          /* uncss:ignore start */
          /* all rules in here will be ignored */
          /* uncss:ignore end */
          • 支持更多配置,包括:ignoreSheets、inject、jsdom、media、raw、report、strictSSL、stylesheets、timeout、uncssrc等參考文末資料。

          參考資料

          https://github.com/uncss/uncss

          https://m.youtube.com/watch?v=DX7McYRGJ8o

          https://uncss-online.com/

          iberfil.sys

          • 同時按下[Win+Q]鍵,在彈出的窗口中輸入cmd,選擇以管理員身份運行

          • 輸入以下命令,然后按下Enter鍵,即可刪除
          powercfg -h off
          

          pagefile.sys

          • 右鍵點擊桌面的此電腦圖標,選擇屬性

          • 點擊右邊的高級系統設置

          • 在彈出的窗口中,選擇高級,再點擊性能中的設置

          • 在彈出的窗口中,選擇高級,再點擊更改

          • 在彈出的窗口中,按照圖片中標點的順序點擊即可

          • 重啟電腦,即可刪除pagefile.sys

          前我寫過一篇有關Windows10系統某個硬盤分區下名為“FileHistory”的文件夾能否刪除的文章,有小伙伴表示疑問,你說刪就刪,刪完了系統不穩定怎么辦?你倒是說說這個文件夾是干啥用的啊!

          答案很簡單:這個文件夾對應著Windows 10系統的一類備份功能。具體開啟、關閉可以按照如下步驟操作:首先打開Windows設置,選擇“更新與安全”,再在左側菜單欄中選擇“備份”,就可以看到如下圖所示的“使用文件歷史記錄進行備份”功能的開關了。

          當然,既然你的某個盤符下已經出現過FileHistory文件夾,那么你之前一定打開過這個開關,或者現在就已經是開啟狀態。這個時候,你可以選擇直接關閉它,再去刪掉整個FileHistory文件夾。你也可以選擇不關閉這個功能,而是打開FileHistory文件夾,將里面的文件有選擇地清空。

          由于我有冷備份的習慣,Windows 10自帶的文件備份功能對我來說可有可無,只能算是一個附加的備份方案。硬盤空間夠用的時候,我會留著它,多一個應急處理方案也挺好。不過,一旦硬盤空間吃緊,我會首先選擇干掉這個文件夾里的文件。一般我每隔一兩個月就清理一下。上一次清理到今天,已經有4個月了,該文件夾里的數據容量占用已經超過了660GB,我的3TB硬盤再次飆紅!于是快刀斬亂麻,把里面的文件直接清空。

          可能里面的文件太繁雜了,刪除這個SSD硬盤上的600GB文件備份居然要用20分鐘,不如刪除一個幾百GB的視頻文件痛快。不過這不算麻煩,你可以去干別的,等十幾分鐘之后 ,少則幾十GB、多則近千GB的占用空間就會被從硬盤中釋放出來,可以極大地緩解硬盤容量將滿的窘境。

          上次科普時,我還和大家提到過,如果你點擊備份開關下面一行的“備份選項”,還可以有針對性地只備份某幾個對你更為重要的文件夾,這樣就不至于讓備份夾FileHistory短時間內變得臃腫不堪,造成硬盤負擔。

          如果你的硬盤空間實在有限,那么直接關閉這個備份功能也完全不會影響到系統運行,請放心關閉,不必擔心少了這個功能。畢竟我們還有許多好用的第三方軟件可以取代它,而且,更值得采用的備份/同步方案則是入手或DIY一臺專門做這個的NAS設備,相信許多朋友早已活學活用,這里就不再贅述了。

          我是筆點酷玩 ,關注我玩數碼不迷路!


          主站蜘蛛池模板: 国产一区二区三区在线观看影院| 国产成人一区二区三区精品久久 | 精品国产一区二区麻豆| 日韩精品一区二区三区视频| 久久精品亚洲一区二区三区浴池| 精品视频在线观看一区二区| 3D动漫精品一区二区三区| 亚洲日韩精品一区二区三区| 日韩精品人妻av一区二区三区| 51视频国产精品一区二区| 久久久精品人妻一区二区三区| 日本一区二区在线不卡| 无码日本电影一区二区网站| 乱子伦一区二区三区| 久久影院亚洲一区| 乱人伦一区二区三区| 国产拳头交一区二区| 国产一区二区三区播放心情潘金莲 | 中文字幕AV一区二区三区人妻少妇 | 精品国产毛片一区二区无码 | 呦系列视频一区二区三区| 久久精品一区二区东京热| 丰满少妇内射一区| 国产精品成人一区二区| 无码精品人妻一区二区三区免费| 久久久久久人妻一区二区三区| 日韩精品无码中文字幕一区二区| 亚洲色欲一区二区三区在线观看| 国产精品主播一区二区| 国产福利电影一区二区三区| 精品理论片一区二区三区| 国产精品一区二区在线观看| 在线一区二区观看| 国产精品一区不卡| 国产免费私拍一区二区三区| 国产亚洲福利精品一区二区| 中文字幕日韩欧美一区二区三区| 手机福利视频一区二区| 成人毛片无码一区二区| 成人免费视频一区二区三区| 成人精品视频一区二区|