Angular 项目里使用 scss 文件的一些技巧

简介: Angular 项目里使用 scss 文件的一些技巧

使用 Angular CLI 新建一个 Angular 项目:

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

创建如下的 scss 文件:

image.png

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 文件:

image.png

我们可以更新 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;
}



目录
相关文章
|
1天前
|
C++
【angular】启动项目和路由配置
【angular】启动项目和路由配置
7 1
|
16天前
设置Open in Terminal快捷键Alt+Shift+Z,方便angular项目的各种命令输入(多任务状态下)
设置Open in Terminal快捷键Alt+Shift+Z,方便angular项目的各种命令输入(多任务状态下)
|
4月前
|
JavaScript
解决vue项目build之后部署到服务器访问的时候出现报错:Uncaught SyntaxError: Unexpected token ‘<‘ chunk-vendors:XXXXXX
解决vue项目build之后部署到服务器访问的时候出现报错:Uncaught SyntaxError: Unexpected token ‘<‘ chunk-vendors:XXXXXX
解决vue项目build之后部署到服务器访问的时候出现报错:Uncaught SyntaxError: Unexpected token ‘<‘ chunk-vendors:XXXXXX
|
3月前
|
存储 搜索推荐 API
通过项目中的实际例子,介绍 LocalStorage 在 Angular 开发中的使用场景
通过项目中的实际例子,介绍 LocalStorage 在 Angular 开发中的使用场景
37 0
|
4月前
|
JavaScript 前端开发
设置Angular路径别名用于ts、js、scss、less
设置Angular路径别名用于ts、js、scss、less
|
4月前
|
JSON 数据格式
别扯那没用的~全网最简洁方法~让Angular可以直接引入import本地的json文件
别扯那没用的~全网最简洁方法~让Angular可以直接引入import本地的json文件
|
4月前
|
应用服务中间件 nginx
Angular打包构建项目服务器运行runtime.js、polyfills.js、vendor.js报错net::ERR_ABORTED 404 (Not Found),build修改为相对路径./
Angular打包构建项目服务器运行runtime.js、polyfills.js、vendor.js报错net::ERR_ABORTED 404 (Not Found),build修改为相对路径./
|
4月前
|
缓存 JavaScript 前端开发
关于 Angular PWA 应用中的 ngsw.json 文件
关于 Angular PWA 应用中的 ngsw.json 文件
30 1
|
5月前
|
Web App开发 前端开发 JavaScript
Angular 应用实现 Lazy Load(懒加载)的项目实战经验分享
Angular 应用实现 Lazy Load(懒加载)的项目实战经验分享
47 0
|
2月前
|
设计模式 JavaScript 前端开发
什么是 Angular 应用里的 Custom provider
什么是 Angular 应用里的 Custom provider
30 2

热门文章

最新文章