如何监视包含多个 sass 文件的整个目录/文件夹的变化

如何跟踪包含许多 sass 文件的整个目录中的更改?我使用以下命令来观察 Sass 的变化

文件:

sass --watch style.scss:style.css

但是如何观察包含许多 sass 文件的整个目录/文件夹的变化。

86837 次浏览

You can create one sass file which includes the rest of the files, and then just watch this file.

Alternately, look into Grunt and the very good grunt-contrib-compass plugin

Simply use the command sass --watch <input folder>:<output folder>, like this:

$ ls -l
css/ sass/
$ sass --watch sass:css

Where <input folder> contains the Sass files and <output folder> that hosts the generated CSS files.

Expanding the answer by piouPiouM a little:

  • Output files will be created with the same names as input files except ending with .css.
  • <input folder> and <output folder> can be the same.
  • Both folders can be the present working directory, so the following is valid:

    $ sass --watch .:.

I ended up doing this without using Grunt or Sass-watch:

npm install -g watch
watch "sass assets/app.scss assets/dist/app.css" assets/css

Go to you terminal and get to you folder then wrote:

 sass --watch .

this will watch all sass files and convert to css files with the same name. also you can do it in this way:

sass --watch ~/user/youUser/workspace/project/styles/

I hope this can help you.

According to the information, you can use the next command line:

sass --watch .

Source: http://sassbreak.com/watch-your-sass/#what-does---watch-do

Just in case someone faces with this issue in 2018:
sass Website refers to Ruby Sass that is been deprecated. and as now (May 2018) if you install dart sass via npm , it does not support --watch command

What to do:
you need to install node-sass globaly , like:

npm install node-sass -g

and then restart the command line , then use this code:

node-sass --watch scss/styles.scss css/styles.css

to compile your scass files to css.
basically node-sass supports --watch command and we use that to compile our scss codes to regular css files.

and just in case you get an error like this at the first time that you save your .scss file:

{
"status": 3,
"message": "File to read not found or unreadable: yourdirectory/scss/styles.scss",
"formatted": "Internal Error: File to read not found or unreadable: yourdirectory/scss/styles.scss\n"
}

what you need to do is save it again, it will work correctly!

if you are in your current folder then do the following to watch it.

F:\sass tutorial>sass --watch ./:./

You can set sass to watch all the .scss files(for my case i got several .scss files in src/static folder) to compile, but before install it globally:

npm i -g sass

then go to the project folder and type command below:

sass --watch $(pwd)/src/static

also you can wrap it in npm script in package.json, like

 "scripts": {
"sass:watch": "sass --watch $(pwd)/src/static"
}
    

and run it by this command:

npm run sass:watch