With the Sassconf command tool you can use a config file for defining your Sass options. If you liked the config file in any Compass environment then you'll like that one also because it's very similar :)
-
Improved live reloading of config file.
- Works now in all exception cases.
-
Fixed OSX 'ps' command execution.
-
Added command check.
-
Improved process handling.
- Fixed 'no such process' exception.
-
Some minor fixes.
-
Fixed Exception handling.
-
Improved syntax error handling.
-
Add Feature live reloading of config file.
-
Improved process handling.
- Childprocess handling on UNIX and MS-DOS.
-
Improved log messages.
- Sass
- [Filewatcher] (https://github.com/thomasfl/filewatcher)
Supported and tested ruby versions
- Ruby
- 1.9.2 and up
- JRuby
- 9.0.0.0.pre2 and up
Install it directly from RubyGems:
gem install sassconf
General usage:
sassconf [options] [INPUT] [OUTPUT]
You can type:
sassconf -h
or only:
sassconf
in your console for show the help text.
###Config File Create a ruby config file like: "config.rb".
For using options from Sass you have to use special variable prefixes "arg_NAME" and "varg_NAME".
- "arg_NAME" for any Sass options without a "=" sign like:
--style
--load-path
--no-cache
...
- "varg_NAME" for any Sass options with a "=" sign like:
--sourcemap
If there is an option with a "-" sign, you have to replace it with a "_" sign in your variable like:
"no-cache" changes to "arg_no_cache"
```
If there is an option without a value, you have to define it with the symbol ":no_value" like:
```ruby
arg_no_cache = :no_value
```
Example config:
```ruby
arg_style = 'compressed'
arg_load_path = '/your/path'
arg_no_cache = :no_value
varg_sourcemap = 'none'
arg_precision = 10
You can also set a list of values on the command line which you can use in your config file:
sassconf --config /path/config.rb --args value1,value2,value3
In your config file you have to use the array "extern_args" like:
extern_args[0] #For "value1"
extern_args[1] #For "value2"
extern_args[2] #For "value3"
arg_style = 'compressed'
...
##CommandLine Options
###Required Options
- -c, --config CONFIG_FILE
- Specify a ruby config file e.g.: /PATH/config.rb
###Optional Options
-
-a, --args ARGS
- Comma separated list of values e.g.: val_a, val_b,...
-
-r, --reload
- Watch config file for changes and reload it. Useful if you are using "arg_watch" in your config.
-
-v, --verbose
- Print all log messages.
-
-?, -h, --help
- Show help text.
##Examples ###Sample 1 - Input Output File
config.rb
production = false
arg_no_cache = :no_value
varg_style = production ? 'compressed' : 'expanded'
varg_sourcemap = 'none'
input.scss
$color: #3BBECE;
.navigation {
border-color: $color;
color: darken($color, 9%);
}
In console type:
sassconf -c ./config.rb ./input.scss ./output.css
Result:
output.css
.navigation {
border-color: #3BBECE;
color: #2ca2af;
}
###Sample 2 - Use a "Filewatcher"
config.rb
production = false
arg_no_cache = :no_value
varg_style = production ? 'compressed' : 'expanded'
varg_sourcemap = 'none'
arg_watch = "./:./out"
input.scss
$color: #3BBECE;
.navigation {
border-color: $color;
color: darken($color, 9%);
}
In console type:
sassconf -c ./config.rb
or with "live reloading":
sassconf -c ./config.rb -r
Console Output:
>>> Sass is watching for changes. Press Ctrl-C to stop.
directory ./out
write ./out/input.css
Result:
/out/input.css
.navigation {
border-color: #3BBECE;
color: #2ca2af;
}
###Sample 3 - Use in JetBrains IDE (WebStorm)
Use Sassconf in e.g. WebStorm with a FileWatcher
All ".scss" files are in a "sass" directory. All generated ".css" files goes to a "css" directory.
In WebStorm create a normal SCSS FileWatcher:
File->Settings->Tools->File Watchers
Program: sassconf
Arguments: -c ./config.rb -a "$ProjectFileDir$,$FileName$,$FileNameWithoutAllExtensions$"
Working Directory: $ProjectFileDir$
Your WebStorm project config.rb file:
config.rb
project_dir = extern_args[0]
file_name = extern_args[1]
file_name_without_extension = extern_args[2]
production = false
arg_no_cache = :no_value
varg_style = production ? 'compressed' : 'expanded'
varg_sourcemap = 'none'
arg_update = "\"#{project_dir}/sass/#{file_name}:#{project_dir}/css/#{file_name_without_extension}.css\""