快轉到主要內容

Rider-利用檔案監控來編譯scss

·143 字·1 分鐘
Art
作者
Art
這是我的技術筆記。

這篇文章在介紹如何在 Rider 中將 Sass、Less、SCSS 編譯為 css 的實際做法

原理
#

Rider 監控檔案變更,呼叫 node.js 的套件執行編譯工作

準備工作
#

需要安裝 node.js 及相關的套件

# 安裝sass
npm install -g sass
# 安裝less
npm install -g less

確保 Rider 的外掛已經安裝好相關的套件,透過快捷鍵 Ctrl + Alt + S 叫出設定視窗,並於 Plugins 頁籤中,選擇已安裝的套件並查看是否已經包含 File WatchersLessSass

自動編譯
#

首先開啟設定( Ctrl + Alt + S),找到File Wachers

接著新增一個新的監控設定,並選擇我們要監控的對象,此處我選擇 scss

預設的設定像這樣

首先我們需要先指定要監控的範圍(scope),選擇…出現設定視窗,可以在此處設定好 Scope,此處我選擇硬碟的某個目錄,選擇該目錄及底下的子目錄,符合條件的目錄會變色

之後的幾個設定,包含了

Program 要執行的指令
#

因為我們剛才有安裝了 node.js 的套件 sass,所以在指令列輸入 sass 就可以執行

Arguments 指令的參數
#

如果你的輸出檔案跟原始檔案想要不同的路徑,這邊就需要做一些調整

Output paths to refresh
#

預設的設定也會一起輸出 map 檔案,不需要的話刪除即可

Working directory 工作目錄
#

預設的 FileDir 指的是該 sass 檔案的路徑,也就是說在這一個地方去呼叫 Program 並給予 Arguments

Advenced Options
#

依照英文應該都不太需要解釋,但是 File Watcher 會監控檔案的改變,此時如果是外部的程式異動了檔案的話,例如 Git 切換分支造成檔案變更,在這樣的情況下如果不要觸發,就把Trigger the watcher on external changes拿掉

Show console的部分在剛開始建立設定,測試的時候我都會開啟always,只要設定正常之後我通常會關閉

結論
#

上述就是透過 Rider 即時編譯的方式,當然也可以不要透過檔案監控,而是透過外部指令的方式去做,這一套流程不只可以用在編譯,當然也可以配合其他需要監控檔案處理事情的需求來做

順便備份一下自己在用的設定

File type: SCSS style sheet
Scope: <myScope>

Program: sass
Arguments: $FileName$:$SolutionDir$\MyProject\Content\CSS\$FileNameWithoutExtension$.css --embed-source-map --quiet
Output paths to refresh: $FileNameWithoutExtension$.css:$FileNameWithoutExtension$.css.map
Working directory: $FileDir$

這樣在專案目錄下,例如 D:\MySolution\MyWeb\SCSS 修改檔案後,就會將該檔案產生的 css 及 map 放到 D:\MySolution\MyWeb\CSS 目錄下