Many SCSS/SASS files to one CSS file?

2019-01-22 11:39发布

Is it possible to make sass listen to a directory with many sass files and generate one CSS file? I have found a way by including many sass files into one (style.scss):

@import "scss/header";
@import "scss/footer";

And then run the following code:

sass --watch style.scss:style.css

but the problem is that I have to change that file before I generate a new CSS file.

标签: html css sass
3条回答
何必那么认真
2楼-- · 2019-01-22 12:15

You can tell SASS to watch an entire folder with:

sass --watch application/sass:public/stylesheets

If you import all your partial files, this should generate one file. Every time you edit a file in the folder, the CSS files will be generated automatically.

查看更多
再贱就再见
3楼-- · 2019-01-22 12:27

If you watch the directory, sass will be able to notice changes in @imported files, and update dependent files.

style.scss:

@import "header";
@import "footer";

And do:

sass --watch .

It will compile all files in the directory to .css; ignoring files whose name start with a _.

I you modify _header.scss or _footer.scss, if will update style.scss too.

You can also output in an other directory:

sass --watch .:output_dir/
查看更多
欢心
4楼-- · 2019-01-22 12:28

Just wanted to add, You can also call Variables ($) and Mixins from other files.

For Example:

_variable.scss = $primary:#000
_header.scss = header {color:$primary;}
_footer.scss = footer {background:$primary}

custom.scss:

@import "_variables.scss";
@import "_header.scss";
@import "_footer.scss";

Output = custom.css

header {color:#000;}
footer {background:#000;}
查看更多
登录 后发表回答