Sass 安裝
1. 前言
這一小節我們來學習如何安裝 Sass ,本小節會分別講解在 Ruby 環境和 Node 環境下安裝 Sass 。 一般來講我們前端的項目工程都是在 Node 環境下的,所以我會重點講解在 Node 環境下的前端工程中安裝 Sass ,同時本節還會講述在安裝 Sass 時容易遇到的問題和解決方案。
2. 在 Ruby 環境中安裝 Sass
Ruby 是一門開源的動態編程語言,Sass 就是基于 Ruby 語言開發而成的,當然你沒必要去深入 Ruby 的知識,這里只要了解一下就可以了,所以我們先來講如何在 Ruby 環境下安裝 Sass 。
2.1 安裝 Ruby
首先我們要在電腦上安裝 Ruby ,Mac 電腦自帶 Ruby 無需再次安裝;Windows 電腦首先需要下載 Ruby,建議使用 Ruby+Devkit 2.6.X (x64) 安裝程序。安裝 Ruby 完成后可以在命令行測試是否安裝成功:
$ ruby -v
// 出現如下內容則表示安裝成功
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin18]
上面我是在 MacOS 的命令行敲擊的命令,在 Windows 中也是一樣的。在安裝后我們需要使用 RubyGems 2.6.x 以上版本來安裝 Sass。 RubyGems 是用來安裝基于 Ruby 的軟件的,就像我們常用的 npm 包管理器。
2.2 安裝 Sass
安裝好 Ruby 后,我們可以直接使用它像下面這樣安裝 Sass :
// 如遇權限問題請使用 sudo 權限
$ gem install sass
安裝完成后你需要在命令行中敲擊如下命令來查看是否安裝成功:
$ sass -v
// 出現 Sass 版本則安裝成功
安裝成功后你就可以在命令行里使用 Sass 了,我們這里舉幾個例子來看下:
//單個文件轉換命令, 將 a.scss 的內容轉換為 css 到 b.css 中
$ sass a.scss b.css
//單文件監聽命令,文件發生變化則自動編譯
sass --watch a.scss:b.css
// 監聽指定的目錄
sass --watch assets/sass:public/styles
關于 Sass 的知識會在后面的章節詳細說明,下面我們講解在前端的項目中是如何安裝 Sass 的。
3. 在前端項目中安裝 Sass
上面我們講了在 Ruby 環境中安裝 Sass ,但我們前端在 Ruby 環境下開發是非常少的,我們前端現在基本都使用 Webpack 構建,一般都是在 Node 環境開發,那在前端項目里是如何安裝 Sass 呢?
首先你要知道 node-sass 和 dart-sass ,這兩個都是提供好的類庫,是 Sass 的實現,本身 Sass 是使用 Ruby 語言寫的,但是它提供了很多接口以方便其他語言來集成和封裝,node-sass 和 dart-sass 就是基于 LibSass( Sass 的 C 版本) 封裝而來的。
它們和 LibSass 的關系就是橘子和橘子汁的關系,我們前端基本也都是通過這兩個庫來使用 Sass ,我們畫個圖來看下它們的關系:
本章節我們以 node-sass 為例,本教程中所有的內容都是以 node-sass 為例的。
3.1 使用 npm 安裝 node-sass
在 Ruby 環境安裝 Sass 我們使用了 gem ,那么在安裝 node-sass 的時候我們需要使用 npm ,作為前端你一定是知道 npm 包管理器的,所以我們直接像下面這樣使用 npm 安裝:
$ npm install node-sass
// 將 node-sass 寫入項目的 package.json 中
$ npm install node-sass --save-dev
上面我們僅僅是在 Node 環境安裝了 Sass,但我們前端的項目是使用 Webpack 來構建,那么我們還需要使用 sass-loader 來編譯項目中的 Sass ,所以我們需要在 Webpack 的配置中配置 sass-loader ,配置如下:
// webpack.config.js
module.exports = {
...
module: {
rules [{
test: /\.scss$/,
use: [{
loader: "style-loader" // 將 JS 字符串生成為 style 節點
}, {
loader: "css-loader" // 將 CSS 轉化成 CommonJS 模塊
}, {
loader: "sass-loader" // 將 Sass 編譯成 CSS
}]
}]
}
};
上面就是在我們的前端項目中安裝 Sass 的方式,后面我們將詳細介紹 Sass 的使用,更多關于 Webpack 的配置請查閱 Webpack 文檔。
4. 常見問題
一般我們比較常見的問題就是安裝 sass 或者 node-sass 特別慢導致安裝失敗,由于國內網絡的限制我們需要切換 gem 和 npm 源。切換 gem 源使用如下命令:
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
// 查看 gem 源
gem sources -l
使用 npm 安裝 node-sass 過慢的話我們可以使用 cnpm 來替換 npm ,或者使用如下命令切換 npm 源:
npm install -g mirror-config-china --registry=http://registry.npm.taobao.org
5. 小結
本節我們主要講解了在 Ruby 環境下安裝 Sass 和在 Node 環境下安裝 Sass ,以及在前端使用 Webpack 構建的項目中安裝 Sass,我們畫個流程圖來回憶一下本節的內容,首先我們回憶下在 Ruby 環境安裝 Sass 的流程:
最后我們再回顧下在 Node 環境中安裝 Sass: