1. 程式人生 > 其它 >Angular 專案裡使用 scss 檔案的一些技巧

Angular 專案裡使用 scss 檔案的一些技巧

使用 Angular CLI 新建一個 Angular 專案:

ng new my-sassy-app --style=scss

建立如下的 scss 檔案:

styles.scss 是我們使用的主要 scss 檔案,裡面匯入了以下劃線開頭的 _variables.scss 和 _mixins.scss:

// src/sass/styles.scss

@import './variables';
@import './mixins';

最後在 angular.json 裡指定這個 styles.scss 檔案即可:

"styles": [
  "sass/styles.scss"
],

現在我們有了新的 _variables.scss 和 _mixins.scss 檔案,我們希望在我們其他的 Angular Component 中使用它們。在其他專案中,您可能習慣於在任意位置訪問這些 scss 檔案裡定義的 Sass 變數。

在 Angular CLI 中,所有元件都是自包含的,它們的 Sass 檔案也是如此。 為了在元件的 Sass 檔案中使用 _variables.scss 中定義的變數,您需要匯入 _variables.scss 檔案。

一種方法是使用元件的相對路徑 @import,比如 ../../ 這種寫法。如果您有許多巢狀資料夾或最終需要移動這些 scss 檔案,這或許不是一個好辦法——可讀性差,並且容易出錯。

一個好辦法是使用 alias 別名語法,用特殊符號波浪號代表:~. 在英語裡 的單詞是 tilde.

// src/app/app.component.scss

@import '~sass/variables';

// now we can use those variables!

波浪號 (~) 將告訴 Sass 檢視 src/ 資料夾,它是匯入 Sass 檔案的快捷方式(short cut).

Angular 專案中匯入 node_modules 資料夾下檔案的一些技巧

我們通過一個實際的例子來講解。假設我們引入了一個依賴 `bootstrap-sass:

npm install bootstrap-sass --save

這個 npm 包具有一些 scss 檔案:

我們可以更新 angular.json, 引入 node_modules 資料夾:

{
	...
	"apps": [{
		"root": "src",
		...
		"stylePreprocessorOptions": {
			"includePaths": [
			  ".",
			  "./stylings",
			  "../node_modules/bootstrap-sass/assets/stylesheets"
			]
		}
		
	}]
}

然後,在 Component 的 style 檔案裡,就可以使用相對路徑,來匯入這些 node_modules 資料夾下的 scss 檔案:

// hello.component.scss
@import "variables";
@import "stylings2/variables"; 
@impoer "bootstrap/variables";

h1 {
	color: $brand-color;
	font-size: $font-size-large;
	font-family: $font-family-serif;
}