How to install node-sass/gulp-sass on Ubuntu 14.04+ or Linux Mint 17+?
I'm trying to switch from gulp-ruby-sass
to node-sass
which is based on libsass
a C implementation faster than the classic Ruby version.
So far I've install the node packages:
Node package
cd /path/to/project
npm install --save-dev node-sass gulp-sass
Gulpfile
I replaced the requirement as follow:
//sass = require('gulp-ruby-sass'),
sass = require('gulp-sass'),
Libsass
Then I went to lo for a libsass
package, but none is available currently.
So I wonder if anyone as a bash script to build it as current instructions are unclear ?
Solution 1:
I documented my research as a bash script as a gist based on the official doc
Compiling and Installing libsass
and sassc
Install dependencies
apt-get install automake libtool
Fetch sources
git clone https://github.com/sass/libsass.git
git clone https://github.com/sass/sassc.git libsass/sassc
Create configure script
cd libsass
autoreconf --force --install
cd ..
Create custom makefiles for shared library
For more info read: Difference between static and shared libraries? before installing libsass
.
cd libsass
autoreconf --force --install
./configure \
--disable-tests \
--enable-shared \
--prefix=/usr
cd ..
Build the library
make -C libsass -j5
Install the library
sudo make -C libsass -j5 install
Testing
Only node-sass
time node-sass /path/to/main.scss
Succeed with
Rendering Complete, saving .css file...
Wrote CSS to /mnt/data/projects/EVRPA/evrpa/web/main.css
node-sass ../web/styles/main.scss 0.42s user 0.03s system 95% cpu 0.471 total
Gulp
with ruby-sass
[17:48:21] Using gulpfile /mnt/data/projects/EVRPA/evrpa/web/gulpfile.js
[17:48:21] Starting 'css'...
[17:48:21] gulp-ruby-sass: directory
[17:48:23] gulp-ruby-sass: overwrite main.css
[17:48:24] Finished 'css' after 2.9 s
gulp css 4.60s user 0.35s system 46% cpu 10.605 total
Gulp
with node-sass
time gulp css
[17:47:59] Using gulpfile /mnt/data/projects/EVRPA/evrpa/web/gulpfile.js
[17:47:59] Starting 'css'...
[17:48:00] Finished 'css' after 1.1 s
gulp css 2.99s user 0.20s system 100% cpu 3.164 total
Conclusion
My tests are no benchmark and have little value but node-sass
seems to be 3-5x faster than ruby-sass
.
Solution 2:
The above is not working anymore with the Ubuntu 18.04
I ended up with the following:
git clone https://github.com/sass/libsass.git ~/libsass
echo "export SASS_LIBSASS_PATH=~/libsass" >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/sass/sassc.git ~/sassc
cd ~/sassc
make
echo "export PATH=$PATH:~/sassc/bin/" >> ~/.bashrc
source ~/.bashrc
sassc -v
Based on https://github.com/sass/sassc/blob/master/docs/building/unix-instructions.md