Compile Sass with SassC and Libsass
Recently Foundation launched version 5 of their framework. This introduced me to Libsass and SassC, a library and wrapper that compiles Sass using C instead of Ruby. The Libsass compiler dramatically reduces compiling times compared to the Ruby compiler. You can run Libsass with Node.js and other languages as well instead of using the C wrapper.
The following is a quick start on how to compile and run Libsass with the SassC wrapper.
Tutorial Prerequisites
I’m using CentOS 6 for this tutorial. You may need to use the sudo command before some of the lines if you do not have root access and it complains about your permissions.
I’m going to start in my /var/www directory created by Apache HTTP but you can do this in any directory you prefer. You do not need Apache HTTP for this.
cd /var/www
Step 1 – Install Dev Tools
First to compile in Linux you need to install certain Development Tools. Installing the package is the easiest way to make sure you have everything. Without the necessary Development tools you would possibly get an error similar to make: \\\ [libsass] Error 2.*
yum groupinstall \"Development Tools\"
Step 2 – Git Libsass and SassC
If you don’t already have Git installed you can install it quickly:
yum install git
Now we’ll clone Libsass and SassC.
git clone https://github.com/hcatlin/sassc.git
git clone https://github.com/hcatlin/libsass.git
Step 3 – Compile SassC
Before we can compile SassC we need to link it to the libsass library.
vi sassc/Makefile
Add the following line to the top of the file.
export SASS_LIBSASS_PATH=/var/www/libsass
Now we can compile SassC.
cd sassc
make
You can now link the file to the PATH so that you do not need to type the whole path to run SassC.
ln -s /var/www/sassc/bin/sassc /usr/bin/sassc
Step 4 – Test SassC
You can now run SassC from any directory. To view the options run the following:
sassc -h
To compile a scss file and compress it with a source map you would run the following:
sassc style.scss -o style.css -t compressed -g
Feel free to let me know of any mistakes I may have made if you’re an expert on this topic. My main reason for this article was a lack of tutorials on this subject online.
One Last Thing...
If you have a question or see a mistake, please comment below.
If you found this post helpful, please share it with others. It's the best thanks I can ask for & it gives me momentum to keep writing!