使用ExtractTextPlugin插件抽取樣式


webpack在打包資源的時候,會將資源文件轉換成javascript代碼,來實現與其他模塊的合並。在打包css文件時,用JS代碼引入樣式的方式,會有一定的延時。這就是我們使用ExtractTextPlugin插件抽取樣式的原因之一。下面我們來比較一下這兩種方式的差別。(本文中使用的webpack版本號3.10.0

一、不使用插件

方式一、直接在JS文件中引入樣式文件

首先我們編寫代碼,代碼完成后,項目的目錄結構如下:

 

index.hmtl中的代碼:

index.js中通過require方法引入index.css

index.css中的內容如下:

 

 接着,我們使用npm init命令生成package.json,然后安裝兩個loader:style-loader和css-loader。

 npm install style-loader css-loader --save-dev

然后執行命令

webpack ./index.js bundle.js

最后在項目中會生成一個bundle.js

在瀏覽器中打開index.html,運行結果如下圖:

檢查生成的bundle.js,發現項目中的css文件是通過js代碼生成的。

 

方式二、配置webpack中的webpack.config.js文件

文件目錄結構如下:

index.js中的代碼修改一下,其他文件與方式一保持一致

新建一個webpack.config.js文件,內容如下:

 

 

接着,我們使用npm init命令生成package.json,然后安裝兩個loader:style-loader和css-loader。

 npm install style-loader css-loader --save-dev

然后執行命令

webpack

 生成的目錄和結果與方式一完全一致。

總結:方法二通過配置的方式比方式一靈活、方便,但是並沒有解決在JS中引入樣式帶來的延遲問題。

 

二、使用插件進行抽取

 項目的目錄結構如下:

先編輯一下webpack.config.js文件,代碼如下:

再編輯一下index.html,通過link引入樣式文件,代碼如下:

index.js中的代碼如下:

index.css中的代碼:

 

 使用npm init命令生成package.json

安裝style-loader和css-loader

npm install style-loader css-loader --save-dev

安裝ExtractTextPlugin插件

npm install extract-text-webpack-plugin --save-dev

安裝webpack到本地項目

npm install webpack --save-dev

執行命令

webpack

 命令執行完后,目錄中多了bundle.js和style.css

查看bundle.js,會發現里面用js操作css的代碼被移除了

ExtractTextWebpackPlugin解決了用js代碼生成樣式文件的弊端,但美中不足的是,它僅僅幫我們提取了css文件。我們需要在頁面中通過手寫代碼引入這個樣式文件,解決這個問題需要其他插件的幫助。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM