我是Angular 4和Angular-CLI的新手。 我找不到任何解决方案如何为整个应用程序使用root scss / css文件。 因此,我的问题是,如何在项目中使用全局scss文件?
答案 0 :(得分:6)
在styles
文件夹中创建一个src
文件夹,然后您可以将其中的所有内容导入styles.scss
文件夹中的src
。这就是我的看法:
// Vendors
@import './styles/vendors/_exports';
// Utils
@import './styles/utils/_exports';
// Globals
@import './styles/globals/_exports';
// Partials
@import './styles/partials/_exports';
// Components
@import './styles/components/_exports';
每个_exports
文件都会导入特定文件夹中的所有文件,以便更轻松地将其导入styles.scss
文件。
我希望这会有所帮助。
修改强>
正如评论中所指出的,请确保将styles.scss
添加到styles
文件中的angular-cli.json
,否则它将无效。
答案 1 :(得分:5)
您将需要向您添加以下代码angular-cli.json (A6 +上的angular.json)
"stylePreprocessorOptions": {
"includePaths": [
"../src/assets/scss/base"
]
},
base
是包含您要@import
的文件的文件夹。
那你就可以
// BEFORE
@import '../../100TIMES/variables';
// NOW
@import 'variables'; // src/assets/scss/base/_variables.scss
谢谢。
注意:您需要重建该项目才能重新加载angular-cli.json (A6 +上的angular.json)
答案 2 :(得分:2)
还可以选择将css / scss文件添加到"样式" .angular-cli.json文件中的数组。可能有一个"最佳实践"通过这样做会破坏我 - 我不确定规则。但是如果在该数组中包含一个文件,它将被注入,就像它被加载到index.html的顶部一样。
以下是我的一个项目的示例:(/。angular-cli.json) ... "样式":[ " styles.scss&#34 ;, " ../ node_modules /字体真棒/ SCSS /字体awesome.scss&#34 ;, " ../ node_modules / MDI / SCSS / materialdesignicons.scss" ] ...
答案 3 :(得分:0)
最简单的方法是在非常根组件中加载scss文件,这样所有子组件都将获得样式。
如果文件很多,我们可以使用@import "scss-file";
如果子组件不想使用该样式,那么我们也可以通过encapsulation
component
属性来处理它
另一种方法是: