ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Libsass Build

by blitzrk ST2/ST3

Build system for Sass/scss files in Sublime Text 2/3 with no external dependencies

Labels sass, scss, css

Details

Installs

  • Total 7K
  • Win 4K
  • OS X 2K
  • Linux 620
Jul 21 Jul 20 Jul 19 Jul 18 Jul 17 Jul 16 Jul 15 Jul 14 Jul 13 Jul 12 Jul 11 Jul 10 Jul 9 Jul 8 Jul 7 Jul 6 Jul 5 Jul 4 Jul 3 Jul 2 Jul 1 Jun 30 Jun 29 Jun 28 Jun 27 Jun 26 Jun 25 Jun 24 Jun 23 Jun 22 Jun 21 Jun 20 Jun 19 Jun 18 Jun 17 Jun 16 Jun 15 Jun 14 Jun 13 Jun 12 Jun 11 Jun 10 Jun 9 Jun 8 Jun 7 Jun 6
Windows 1 3 3 3 6 6 4 0 6 2 2 4 6 2 1 5 4 3 2 8 2 3 6 3 4 2 1 3 3 2 4 4 3 4 3 1 7 6 8 6 5 1 1 4 1 5
OS X 0 1 2 3 2 1 0 0 1 1 1 1 1 1 0 1 0 0 2 0 2 1 0 0 0 4 5 0 2 2 1 1 4 1 0 0 0 3 2 1 2 0 0 1 1 2
Linux 0 0 1 0 0 1 1 0 1 0 3 0 4 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0

Readme

Source
raw.​githubusercontent.​com

Libsass versionSassc version

Libsass Build

Linux & OSX Windows
Build Status ?

Build system for Sass/scss files in Sublime Text 2/3 with no external dependencies

It uses libsass (via the official sassc front-end) for faster compile times compared to the official Ruby implementation.

https://github.com/blitzrk/sublime_libsass

Configuration

By default, sassc is given no arguments and css files are put in build/css relative to the assumed root of the project (the outermost parent directory containing a sass file from the file being compiled). The default output directory and sassc flags can be modified Preferences->Package Settings->Libsass Build ->Settings - User. There is a skeleton in Settings - Default or see below.

A project-specific configuration can written to .libsass.json file. Additionally, the location of this file will make explicit the root of the project as far as where sass imports and the output directory is based. You can edit this config or generate an example by selecting the menu item Tools->Libsass Build ->Edit Project Config.

Example:

You have the directory structure:

/path/to/projects/example/
|-- lib/
|-- static/
|   |-- js/
|   |-- css/
|   |   +-- main.css
|   +-- images/
|-- .libsass.json
+-- styles/
    |-- partials/
    |   +-- _reset.scss
    +-- main.scss (has @import 'partials/reset';)

Then you could use:

/path/to/projects/example/.libsass.json:

{
    "output": {
        "dir": "static/css",
        "structure": "flat"
    },
    "compile": {
        "line-comments": true,
        "line-numbers":  true,
        "style":         "nested", // Comments allowed in `.libsass.json`, but not `*.sublime-settings`
        "load-path":     "/path/to/projects/example/styles" // You DO NOT need this line
    }
}

or alternatively in /path/to/projects/example/styles/.libsass.json:

{
    "output": {
        "dir": "../static/css", // This path gets normalized, so `..`s get handled
        "structure": "flat"
    },
    "compile": {
        "line-comments": true,
        "line-numbers":  true,
        "style":         "nested",
        "load-path":     "/path/to/node_modules/bourbon" // Get your fill of bourbon or point to compass!
    }
}

Structure

In config you can specify in output.structure whether you want your compiled assets to be side-by-side or nested in their original structure.

./
|-- .libsass.json (output dir is "css")
|-- css/
+-- scss/
    |-- main.scss
    +-- modules/
        +-- menu.scss
  • nested (default): compiles to css/scss/main.css and css/scss/modules/window.css
  • nested with root directory: if your .libsass.json is further away, remove prefix to nested path
    • ex. “structure”: [“nested”, “scss”]
    • compiles to css/main.css and css/modules/menu.css
  • flat: compiles side-by-side to css/main.css and css/menu.css

Usage

Configuration is entirely optional, so in the simplest case, simply build with Ctrl+Shift+B. If you have another Sass build system installed, you may need to select Sass (libsass) in Sublime's menu.

Troubleshooting

Libsass isn't automatically chosen as the build system

If you have another Sass build system installed, it may be conflicting. If no build system is selected, then you may not have a Sass syntax definition installed or it may be oddly defined (i.e. not using source.sass or source.scss). Try replacing it with another syntax highlighting package such as Sass.

My file compiled, but I don't know where it went!

Libsass looks up the directory structure until it finds (or doesn't find) a .libsass.json config file. If you're not using a config file, then check that there isn't a config in any parent directory. E.g. if you have your project in /home/ben/projects/app and an extraneous config file /home/ben/projects/.libsass.json, the css will output relative to /home/ben/projects instead of to /home/ben/projects/app/build/css.

My configuration doesn't seem to do anything

In version 0.9.0 the configuration format was changed. Sorry about that, but it was important! And hopefully now the names are less confusing, too. Anyway, check out the examples above. The top-level keys are now “output” and “compile” instead of “output_dir” and “options”.

Invalid UTF-8

At the moment there are some bugs in Libsass Sublime's unicode support, so if you see a UTF error, you likely have a non-ascii character in the path or name of one of your files in your project. For now, the best workaround is to just rename your file or directory. This is obviously annoying and it will be fixed as soon as possible.