如何通过命令行将目录SASS/SCSS转换为CSS?

avi*_*ian 35 sass

我试过了:

sass-convert --from scss --to css --recursive app/assets/stylesheets temp
Run Code Online (Sandbox Code Playgroud)

但是这只能将css转换为SASS,我想要相反的方式.

然后我查看了sass命令,但看起来我不能将它传递给目录.

Kat*_*ieK 49

要执行一次性Sass编译而不是a watch,您可以从命令行执行此操作:

sass --update scss:css
Run Code Online (Sandbox Code Playgroud)

要让Sass导入一个文件(通常是部分文件,_启动文件名),您可以在Sass文件中执行此操作:

@import "_base.scss";
Run Code Online (Sandbox Code Playgroud)

这样一来,萨斯知道在那里你想要的包括发生.

默认情况下,Sass无法导入整个目录.在萨斯通配符的宝石,但是,可以.您可以从命令行安装它:

gem install sass-globbing
Run Code Online (Sandbox Code Playgroud)

然后观看它:

sass -r sass-globbing --watch sass_dir:css_dir
Run Code Online (Sandbox Code Playgroud)

请注意,globbing将按字母顺序导入文件,因此如果发生这种情况,请确保CSS将适当级联.


Reg*_*ham 11

使用sass命令后跟input file name and path冒号(:)和所需的命令output file name and path.如果输出文件尚不存在,Sass将生成它.例如,

sass sass/main.scss:css/main.css
Run Code Online (Sandbox Code Playgroud)

但是,这是一个一次性命令,需要在每次要生成新的CSS文件时运行.一种更简单,更方便的方法是使用Sass的内置--watch标志.这会监视对Sass文件的更改,并在每次保存更改时自动运行编译命令.

sass --watch sass/main.scss:css/main.css
Run Code Online (Sandbox Code Playgroud)

如果目录中有多个Sass文件,则可以监视该目录中任何文件的更改:

sass --watch sass:css
Run Code Online (Sandbox Code Playgroud)

萨斯还有四种可用的CSS样式输出:nested,expanded,compactcompressed.这些可以这样使用:

sass --watch sass:css --style compressed
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅Sass文档.


kou*_*der 5

为此,只需转到您的项目目录并执行以下操作:

sass --update sass-dir:assets/css
Run Code Online (Sandbox Code Playgroud)

使用sass-dir,该目录包含您的实际sass文件,并包含资产/ css所需的输出目录。

希望这会有所帮助。