国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Webpack4教程 - 第二部分,使用loader處理scss,圖片以及轉(zhuǎn)換JS

Jioby / 2786人閱讀

摘要:它將包括如何處理圖片以及對老版本的語言的轉(zhuǎn)換。添加使用最好的方式是在文件中指定它們。而相反,文件被轉(zhuǎn)換為了。它允許你使用轉(zhuǎn)譯文件。此外,我們還學習如何使用處理圖片。在教程未來的部分,我們會深入到中,包括寫一個我們自己的。

轉(zhuǎn)載請注明出處:葡萄城官網(wǎng),葡萄城為開發(fā)者提供專業(yè)的開發(fā)工具、解決方案和服務(wù),賦能開發(fā)者。

今天繼續(xù)我們的Webpack 4入門教程。在介紹了Webpack的基本概念之后,是時候更深入一點了。這次我們會涉及Webpack中非常強大的一個東西:loader。首先,我們會學習如何使用那些可用的loader。它將包括如何處理css、scss、圖片以及對老版本的JavaScript語言的轉(zhuǎn)換。讓我們開始吧!

Webpack 4 入門教程繼續(xù) - 什么是loaders?

在之前的教程,我說Webpack是一個打包器。但這不是它僅有的目的。雖然Webpack天生只能理解JavaScript文件,但可以利用loader來改變這一點。除了能夠處理多種類型的文件,Webpack還能修改它們。

添加loader

使用loader最好的方式是在webpack.config.js文件中指定它們。要這么做,你需要添加module.rules屬性。

css-loader
css-loader能夠翻譯引入的css文件。

npm install css-loader

考慮如下的配置

// webpack.config.js
module.exports = {
  module: {
    rules: [
      {
        test: /.css$/,
        use: "css-loader"
      }
    ]
  }
};

rules
rules 這個屬性是一個數(shù)組,指明你的各個loader。它會作用于匹配到 test 屬性所指定規(guī)則的每一個文件。這個規(guī)則,實際上,是一個正則表達式。

use
屬性 use 指明需要對匹配的文件應(yīng)用那個loader。

串聯(lián)多個loader
有了上面的代碼,你就能夠在你的JavaScript代碼中導入css文件了。(例如,使用文章上面我們提到的ES6模塊

但這還不能讓css真正生效。我們需要一種方法讓瀏覽器能夠使用這些css。這種情況下,style-loader就派上用場了。

npm install style-loader

但那就意味著要對css文件使用兩個loader。你可以通過串聯(lián)多個loader(chaining loaders)來使它們都生效。

// webpack.config.js
module.exports = {
  module: {
    rules: [
      {
        test: /.css$/,
        use: ["style-loader", "css-loader"]
      }
    ]
  },
}

你可以看到,我們給了 use 屬性一個數(shù)組。一個非常重要的注意點是,串聯(lián)執(zhí)行的順序是反向的(譯者注:也就是從右往左)。

/* style.css */
body {
  background-color:black;
}
// index.js
import "./style.css"

使用上面的配置,打包的工作方式大概是:

Webpack嘗試解析 style.css 文件

文件名與正則表達式/.css$/匹配

文件被 css-loader 編譯

css-loader 處理后的結(jié)果會被傳到 style-loader

最后,style-loader 返回一串JavaScript代碼

默認情況下,打包后的輸出是./dist/bundle.js。現(xiàn)在,這個文件包含的代碼會把所有的樣式插入到

sass-loader
有了這些知識,你可以輕松地給你的工程添加sass/scss支持了。你可以在這里使用 sass-loader

npm install sass-loader

只需要在你的loader鏈里插入它:

// webpack.config.js
module.exports = {
  module: {
    rules: [
      {
        test: /.scss$/,
        use: ["style-loader", "css-loader", "sass-loader"]
      }
    ]
  },
}

就是這樣,現(xiàn)在你可以引入scss文件了!文件在被 css-loader 解析之前,會從scss轉(zhuǎn)譯成純css。

(譯者注: 如果安裝完sass-loader后,本地運行Webpack出現(xiàn)了和node-sass相關(guān)的錯誤,可嘗試再安裝一個node-sass的包解決這個問題,即npm install node-sass

給loader傳入選擇項

實際上,loader可以接受一些選擇項。讓我們用 url-loader 為例來說明。

npm install url-loader file-loader

// webpack.config.js
module.exports = {
  module: {
    rules: [
      {
        test: /.scss$/,
        use: ["style-loader", "css-loader","sass-loader"]
      },
      {
        test: /.(png|jpg|gif)$/,
        use: [
          {
            loader: "url-loader",
            options: {
              limit: 5000
            }
          }
        ]
      }
    ]
  }
};

注意,如果你想要給loader傳入配置項,你不再是把loader以字符串形式給 use 屬性。現(xiàn)在它是一個對象,包含兩個屬性: loader(即loader的名字),和 options。

url-loader會把你的圖片轉(zhuǎn)換為base64格式的URI。如果你的圖片文件很小,那么把它們直接引入到代碼中會有更好的性能。這可以減少瀏覽器所發(fā)的請求數(shù)。但是,如果你的圖片文件很大,那么把它們作為多帶帶的文件引入可能會更好,因為瀏覽器可以并行加載它們。

這就是為什么 url-loader 有一個 limit 屬性。它指明了一個文件大小(以byte為單位),當超過這個大小時,文件將不會被轉(zhuǎn)為base64的URI。相比較而言,file-loader 僅僅是被用來拷貝你的文件。

body {
  background-image: url("./big-background.png");
}
.icon {
  background-image: url("./icon.png");
}

上面的配置會得到下面的結(jié)果:

因為big-background.png比限制的大小更大,它被拷貝至dist文件夾,并被起了一個隨機的名字。而相反,icon.png文件被轉(zhuǎn)換為了base64 URI。

使用babel轉(zhuǎn)譯JavaScript

另一個流行的loader是 babel-loader。它允許你使用Babel轉(zhuǎn)譯JavaScript文件。它解決了如何使用最新版本的JavaScript來編寫代碼的問題。如果你想支持老版本的瀏覽器,或者想使用現(xiàn)代瀏覽器還沒有實現(xiàn)的功能,Babel都能夠幫到你。

npm install babel-loader @babel/core @babel/preset-env

(譯者注:原文的babel-core和babel-preset-env依賴被替換為@babel/core和@babel/preset-enve,因為新版本的Babel7中對官方提供的依賴使用了命名空間@babel)

module.exports = {
  module: {
    rules: [
      {
        test: /.js$/,
        exclude: /(node_modules)/,
        use: {
          loader: "babel-loader",
          options: {
            presets: ["@babel/preset-env"]
          }
        }
      }
    ]
  }
};

注意到,我們這里使用了 exclude 屬性,它也是一個正則表達式。如果任何文件與這個表達式相匹配,它將不會被轉(zhuǎn)譯。

這里有很多預(yù)置項可以滿足你的需求。查閱Babel的官方文檔,你可以在那里找到它們的列表。

總結(jié)

這一次我們學習了Webpack很有用的一個功能:loader。我們介紹了一些可用的loader。利用它們,我們在項目中添加上了對scss的支持。此外,我們還學習如何使用 url-loader 處理圖片。另外一個loader的常用之處是我們討論的利用Babel轉(zhuǎn)譯JavaScript。在教程未來的部分,我們會深入到loader中,包括寫一個我們自己的loader。

——近期,恰逢葡萄城成立30周年,葡萄城聯(lián)合博客園誠邀你參與《2018程序員生存現(xiàn)狀調(diào)查》活動,參與即有機會贏取千元大獎,并和千萬程序猿(媛)共同交流、分享。
詳情了解:https://www.cnblogs.com/power...

本文是由葡萄城技術(shù)開發(fā)團隊發(fā)布,轉(zhuǎn)載請注明出處:葡萄城官網(wǎng)

了解開放易用的 Web 生成平臺,請前往活字格Web應(yīng)用生成平臺

了解可嵌入您系統(tǒng)的在線 Excel,請前往SpreadJS純前端表格控件

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/113909.html

相關(guān)文章

  • webpack4 系列教程(六): 處理SCSS

    摘要:只需要在處理的配置上增加編譯的即可。了解更多處理的內(nèi)容本節(jié)課源碼所有課程源碼教程所示圖片使用的是倉庫圖片,網(wǎng)速過慢的朋友請移步原文地址系列教程六處理。根據(jù)規(guī)則放在最后的首先被執(zhí)行。 這節(jié)課講解webpack4中處理scss。只需要在處理css的配置上增加編譯scss的 LOADER 即可。了解更多處理css的內(nèi)容 >>> >>> 本節(jié)課源碼 >>> 所有課程源碼 教程所示圖片使用的是...

    馬龍駒 評論0 收藏0
  • webpack4 系列教程(七): SCSS提取和懶加載

    摘要:教程所示圖片使用的是倉庫圖片,網(wǎng)速過慢的朋友請移步原文系列教程七提取和懶加載。個人技術(shù)小站有空就來看看我一直都在本節(jié)課講解在中的提取和懶加載。值得一提的是,和在的懶加載上的處理方法有著巨大差別。 教程所示圖片使用的是 github 倉庫圖片,網(wǎng)速過慢的朋友請移步>>> (原文)webpack4 系列教程(七): SCSS 提取和懶加載。 個人技術(shù)小站: https://godbmw.c...

    崔曉明 評論0 收藏0
  • webpack4 系列教程(五): 處理CSS

    摘要:版本和版本并沒有特別的出入。需要注意的是,在老式瀏覽器中,對標簽的數(shù)量是有要求的。這樣,方便開發(fā)者根據(jù)業(yè)務(wù)需要,對進行相關(guān)處理。需要注意的是是在引入前根據(jù)需要修改,所以之后是不會改變的。重新刷新頁面,才會是紅色。 這節(jié)課講解webpack4中打包css的應(yīng)用。v4 版本和 v3 版本并沒有特別的出入。 >>> 本節(jié)課源碼 >>> 所有課程源碼 教程所示圖片使用的是 github 倉庫圖...

    nevermind 評論0 收藏0
  • webpack4詳細教程,從無到有搭建react腳手架(三)

    摘要:相關(guān)鏈接詳細教程,從無到有搭建腳手架一詳細教程,從無到有搭建腳手架二安裝配置創(chuàng)建,效果安裝配置創(chuàng)建效果配置模式修改配置現(xiàn)在編譯后的由動態(tài)內(nèi)聯(lián)在中,需要分離到單獨的文件安裝插 相關(guān)鏈接 webpack4詳細教程,從無到有搭建react腳手架(一) webpack4詳細教程,從無到有搭建react腳手架(二) Css 安裝loader yarn add style-loader css...

    Sunxb 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<