當前位置:
首頁 > 知識 > Webpack2 構建 PostCSS

Webpack2 構建 PostCSS


1. 編程環境

  1. 假設大家都裝了 NodeJS環境,並且了解 npm

    的基礎用法。

  2. 我使用 Macbook 的 Shell,所以加 sudo。Windows 環境下也測試無誤,建議使用 Git Shell 工具,但是請輸命令的時候,不要加 sudo。

2. 工具簡介

  • Webpack 是德國開發者 Tobias Koppers 開發的模塊載入器. 在 Webpack 當中, 所有的資源都被當作是模塊, JS, CSS, 圖片等。其功能強大,我已經用來取代 Grunt/Gulp 等構建工具,處理 CSS 和 JS,完全滿足我工作需求。

  • PostCSS 是對 CSS 本身做模塊化轉換,轉換功能分別由不同插件配合完成,因此可以個性化配置。體驗上比 Sass 更強大和靈活,並且速度更快。另外由於不同功能模塊完全獨立,所以更容易維護和升級。

    (需要注意,webpack2 並沒有完全兼容 1 的配置。)

Webpack2 構建 PostCSS


3. 初始化和安裝

下面我們分別安裝所需的模塊。

3.1 創建配置

用命令行切換到項目目錄下,初始化 package.json文件.

Webpack2 構建 PostCSS

3.2 安裝 Webpack2

由於是 Beta 版,所以安裝時必須指定版本。我安裝的是如下版本:

Webpack2 構建 PostCSS

webpack 的構建過程,是基於不同的載入器。每種文件類型,對應自己的載入器。

使用 PostCSS,至少安裝下面三種載入器:

Webpack2 構建 PostCSS

為了方便開發,還需要裝 webpack-dev-server 對應的 Beta 版。稍後會解釋做什麼用途~

Webpack2 構建 PostCSS

3.3 安裝 PostCSS

由於 PostCSS 是一個插件平台,每個人所需的「功能模塊」都不同,所以我這裡只演示我個人配置。

安裝 Postcss

Webpack2 構建 PostCSS

安裝我所需的功能模塊


sudo npm i -D cssnext postcss-atroot postcss-conditionals postcss-each postcss-extend postcss-for postcss-import postcss-mixins postcss-nested postcss-simple-vars

4. 配置webpack2

webpack 做的事情是用對應的 loader(載入器),去載入和解析資源。

. css 有 CSS載入器;

. png 有 圖片載入器;

. js 有 JS載入器;

本文稍後會講如何配置一個 css 載入器,使用 PostCSS 去解析 .css 資源。

通常,我們使用 webpack 生成一個 bundle.js 文件。這個文件是所有 資源的集合 ,HTML 只需引用這個文件即可。

但是在開發環境中,我們並不需要真正的生成一個 bundle.js 文件,因為實時編譯和生成,效率很低。

那怎麼辦呢?讓他存在內存中即可,而後 HTML 引用內存中的 bundle.js 內容。這樣做,實時編譯時效率更高,並且方便調試。

為此,我們還需要安裝 webpack-dev-server!

這是一個基於 Express 的微型 HTTP 伺服器,他可以在本地通過 http:// 的方式訪問項目文件。主要功能是 虛擬HTML 和 虛擬bundle.js ,也就是說他們不必真的存在,只需要在內存中運行。並且通過功能擴展插件,可以繼承其他強大功能。

我們可以直接通過在命令行,使用 webpack 命令 結合各選項設定,完成構建工作。但是這樣並不方便,所以我們需要創建 webpack.config.js 配置文件,這樣我們只需要簡短的命令,就能夠應用複雜的配置。運行 webpack 時會默認讀取當前命令行目錄下的 webpack.config.js 文件里的配置。

我們可以在編輯器里新建,或者是通過命令行創建這個配置文件:

Webpack2 構建 PostCSS

之後編輯配置文件(webpack.config.js):

Webpack2 構建 PostCSS

Webpack2 構建 PostCSS

上面配置中的路徑,是我項目使用的路徑。

/src 存放源文件

/dist 構建結果(生產環境使用)


5. 配置postcss

PostCSS 的配置文件,我們採用外置的方式.

在項目根目錄下創建 postcss.config.js 文件,輸入配置:

Webpack2 構建 PostCSS

到目前為止,我們已經實現了目標!只需在命令行輸入以下命令,等待文件構建,便可在瀏覽器中查看了!

webpack-dev-server

6. 外置css

因為 webpack 的特點,CSS 會被嵌入到 HTML 的 Style 里,這對於多數前端來說很不方便。如果你介意,那麼可以通過 extract-text-webpack-plugin 插件,提取 CSS 到獨立的文件中。

6.1 安裝

需要裝最新的測試版,才能在 webpack2 中正常工作:

Webpack2 構建 PostCSS

6.2 配置

要修改 webpack.config.js 文件,在最開始引入模塊:

Webpack2 構建 PostCSS

還要修改 module 部分的配置,修改 css 載入器:

(webpack.config.js)

Webpack2 構建 PostCSS

還要修改 plugins 部分的配置,增加一條插件配置:

(webpack.config.js)

Webpack2 構建 PostCSS


7. 命名簡寫

修改 package.json 文件,在 『scripts』 部分,加入一條 start 命令:

Webpack2 構建 PostCSS

這樣可以在命令行通過簡易的方式,運行 webpack-dev-server。特別適合有額外參數的時候~

#啟用構建npm start

8. 總結

webpack2配置postcss有兩種方式:

8.1 使用postcss.config.js

安裝postcss-load-config

配置postcss.config.js

Webpack2 構建 PostCSS

8.2 webpack LoaderOptionsPlugin

第二種辦法是webpack.config.js使用LoaderOptionsPlugin

Webpack2 構建 PostCSS

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 極客教程 的精彩文章:

程序員最核心的競爭力-學習能力
JS鍵盤的鍵碼整理(event.keyCode)
一張圖介紹offsetTop、clientTop、scrollTop、offsetTop
看電商發展過程中,前端技術的演進

TAG:極客教程 |