GithubHelp home page GithubHelp logo

ackerapple / ack-sass Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 0.0 188 KB

node-sass implementation that greatly reduce config setup and also comes with css file importer

License: MIT License

JavaScript 97.42% CSS 2.58%
watch sass css

ack-sass's Introduction

ack-sass

A node-sass implementation that greatly reduces configuration setup and also comes with natural css file importing functionality

Table of Contents

Examples

Sass Include CSS Example

Create File: styles.css

html,body {margin:0;padding:0;width:100%;height:100%;}

Create File: styles.scss

@import "CSS:./some-css-file"/* never add .css extension */
html,body {margin:1em;padding:1em;}

Single File Build Example

Create file: scss-build.js

var path = require('path')
var ackSass = require('ack-sass')
var filePath = path.join(__dirname,'styles.scss')
var outFilePath = path.join(__dirname,'styles.css')

console.log('compiling sass')

ackSass.compileFile(filePath, outFilePath)
.then(function(){
  console.log('compiling completed')
})
.catch(console.log.bind(console))

Multi File Build Example

Create file: scss-build-path.js

var path = require('path')
var ackSass = require('ack-sass')
var filePath = path.join(__dirname,'scss')
var outFilePath = path.join(__dirname,'css')

console.log('compiling sass path')

ackSass.compilePath(filePath, outFilePath)
.then(function(){
  console.log('compiling path completed')
})
.catch(console.log.bind(console))

Single File Watch Example

Create file: scss-watch-single.js

var path = require('path')
var ackSass = require('ack-sass')
var filePath = path.join(__dirname,'styles.scss')
var outFilePath = path.join(__dirname,'styles.css')

console.log('compiling sass')

ackSass.watchFile(filePath, outFilePath)
.then(function(){
  console.log('watching is occurring')
})
.catch(console.log.bind(console))

Multi File Build Example

Create file: scss-watch-path.js

var path = require('path')
var ackSass = require('ack-sass')
var filePath = path.join(__dirname,'scss')
var outFilePath = path.join(__dirname,'css')

console.log('compiling sass path')

ackSass.watchPath(filePath, outFilePath)
.then(function(){
  console.log('watching path is occuring')
})
.catch(console.log.bind(console))

Create NPM Scripts

Using the above examples, create yourself a quick script

Edit file: package.json

scripts:{
  "build:sass:single": "node scss-single",
  "build:sass": "node scss"
}

Include JSPM

JSPM is crazy awesome as of this writing, you will most likely need to include css from JSPM packages

Import sass-jspm-importer into project

$ npm install --save-dev sass-jspm-importer

Create File: scss.js (an edit of previous example)

var path = require('path')
var ackSass = require('ack-sass')
var filePath = path.join(__dirname,'styles.scss')
var outFilePath = path.join(__dirname,'styles.css')

var sassJspm = require('sass-jspm-importer')
var options={
  importer:[sassJspm.importer],
  functions:[sassJspm.resolve_function('/lib/')]//for sass-jspm-importer
}

console.log('compiling sass')

ackSass.compileFile(filePath, outFilePath, options)
.then(function(){
  console.log('compiling completed')
})
.catch(console.log.bind(console))

Command Line Interface

CLI, The following command will compile one scss file into one css file

Build File

ack-sass src/styles.scss www/assets/styles/styles.css --production

Build Folder

ack-sass src/ www/assets/styles/ --directory

Watch File

ack-sass src/styles.scss www/assets/styles/styles.css --watch

Watch Folder

ack-sass src/ www/assets/styles/ --watch --directory

CLI Options

  • watch
    • watches all files within import (except CSS:include)
    • watches all scss, sass, and css files within target folder
    • does not watch "CSS:include" files that are included OUTSIDE of building folder
  • production
    • minify files
  • directory
    • mode is to build entire folder instead of a single file

Recommended to include the following in your package.json scripts

"scripts":{
  "build:css": "ack-sass src/styles.scss www/assets/styles/styles.css --production",
  "watch:css": "watch 'ack-sass src/styles.scss www/assets/styles/styles.css' src/scss"
}

ack-sass's People

Contributors

ackerapple avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.