» npm install @adamlui/scss-to-css
Can I convert SCSS to CSS?
How to convert SCSS to CSS in JavaScript?
How to convert SCSS files to CSS in Angular?
Use sass package instead of VSCode Extensions like Live SASS Compiler.
Why should not we use "Live SASS Compiler" VSCode extension?
- Live SASS Compiler extension is old and hasn't been updated for a while.
- Some features like
@debug,@warn,@errorwon't work, so if you are using it, you have to use thesassnpm package for that.
So, How to install the sass package?
- So simple, just run these commands.
npm install -g sass
- And convert SASS to CSS automatically by running the below command on your terminal.
sass -w source/stylesheets/index.scss build/stylesheets/index.css
More information is available on the sass docs here
Source - https://pineco.de/the-simplest-sass-compile-setup
By - Adam Laki
Make sure your project has a package.json file (and you have Node installed on your machine). Run npm init if you have Node but not package.json file, to initialize one.
Install sass package:
npm install sass --save-dev
Learn more about the package and its CLI
In the package.json file's scripts section, add these:
"scripts": {
"sass-dev": "sass --watch --update --style=expanded assets/css",
"sass-prod": "sass --no-source-map --style=compressed assets/css"
},
Run scripts:
npm run sass-dev
// or
npm run sass-prod
What is a source map? A particular file that allows the browser to map back from the processed, concatenated files to the original ones. It is helpful because we can see the original file names when we debug the CSS in the developer tools.
The above is a very basic setup to compiling SCSS files and "watching" them for changes. Your server should have a pipeline or some sort of build system that it would be able to run this npm command in order to compile SCSS files, so theoretically you don't need to push your pre-compiled CSS files to the server, but it does it by itself.
I picked node-sass implementer for libsass because it is based on node.js.
Installing node-sass
- (Prerequisite) If you don't have npm, install Node.js first.
$ npm install -g node-sassinstalls node-sass globally-g.
This will hopefully install all you need, if not read libsass at the bottom.
How to use node-sass from Command line and npm scripts
General format:
$ node-sass [options] <input.scss> [output.css]
$ cat <input.scss> | node-sass > output.css
Examples:
$ node-sass my-styles.scss my-styles.csscompiles a single file manually.$ node-sass my-sass-folder/ -o my-css-folder/compiles all the files in a folder manually.$ node-sass -w sass/ -o css/compiles all the files in a folder automatically whenever the source file(s) are modified.-wadds a watch for changes to the file(s).
More usefull options like 'compression' @ here. Command line is good for a quick solution, however, you can use task runners like Grunt.js or Gulp.js to automate the build process.
You can also add the above examples to npm scripts. To properly use npm scripts as an alternative to gulp read this comprehensive article @ css-tricks.com especially read about grouping tasks.
- If there is no
package.jsonfile in your project directory running$ npm initwill create one. Use it with-yto skip the questions. - Add
"sass": "node-sass -w sass/ -o css/"toscriptsinpackage.jsonfile. It should look something like this:
"scripts": {
"test" : "bla bla bla",
"sass": "node-sass -w sass/ -o css/"
}
$ npm run sasswill compile your files.
How to use with gulp
$ npm install -g gulpinstalls Gulp globally.- If there is no
package.jsonfile in your project directory running$ npm initwill create one. Use it with-yto skip the questions. $ npm install --save-dev gulpinstalls Gulp locally.--save-devaddsgulptodevDependenciesinpackage.json.$ npm install gulp-sass --save-devinstalls gulp-sass locally.- Setup gulp for your project by creating a
gulpfile.jsfile in your project root folder with this content:
'use strict';
var gulp = require('gulp');
A basic example to transpile
Add this code to your gulpfile.js:
var gulp = require('gulp');
var sass = require('gulp-sass');
gulp.task('sass', function () {
gulp.src('./sass/**/*.scss')
.pipe(sass().on('error', sass.logError))
.pipe(gulp.dest('./css'));
});
$ gulp sass runs the above task which compiles .scss file(s) in the sass folder and generates .css file(s) in the css folder.
To make life easier, let's add a watch so we don't have to compile it manually. Add this code to your gulpfile.js:
gulp.task('sass:watch', function () {
gulp.watch('./sass/**/*.scss', ['sass']);
});
All is set now! Just run the watch task:
$ gulp sass:watch
How to use with Node.js
As the name of node-sass implies, you can write your own node.js scripts for transpiling. If you are curious, check out node-sass project page.
What about libsass?
Libsass is a library that needs to be built by an implementer such as sassC or in our case node-sass. Node-sass contains a built version of libsass which it uses by default. If the build file doesn't work on your machine, it tries to build libsass for your machine. This process requires Python 2.7.x (3.x doesn't work as of today). In addition:
LibSass requires GCC 4.6+ or Clang/LLVM. If your OS is older, this version may not compile. On Windows, you need MinGW with GCC 4.6+ or VS 2013 Update 4+. It is also possible to build LibSass with Clang/LLVM on Windows.
npx node-sass input.scss out.css