UNPKG

25.9 kBMarkdownView Raw
1# node-sass
2
3**Warning:** [LibSass and Node Sass are deprecated](https://sass-lang.com/blog/libsass-is-deprecated).
4While they will continue to receive maintenance releases indefinitely, there are no
5plans to add additional features or compatibility with any new CSS or Sass features.
6Projects that still use it should move onto
7[Dart Sass](https://sass-lang.com/dart-sass).
8
9## Node version support policy
10
111. Supported Node.js versions vary by release, please consult the [releases page](https://github.com/sass/node-sass/releases).
121. Node versions that hit end of life <https://github.com/nodejs/Release>, will be dropped from support at each node-sass release (major, minor).
131. We will stop building binaries for unsupported releases, testing for breakages in dependency compatibility, but we will not block installations for those that want to support themselves.
141. New node release require minor internal changes along with support from CI providers (AppVeyor, GitHub Actions). We will open a single issue for interested parties to subscribe to, and close additional issues.
15
16Below is a quick guide for minimum and maximum supported versions of node-sass:
17
18NodeJS | Supported node-sass version | Node Module
19--------|-----------------------------|------------
20Node 20 | 9.0+ | 115
21Node 19 | 8.0+ | 111
22Node 18 | 8.0+ | 108
23Node 17 | 7.0+, <8.0 | 102
24Node 16 | 6.0+ | 93
25Node 15 | 5.0+, <7.0 | 88
26Node 14 | 4.14+, <9.0 | 83
27Node 13 | 4.13+, <5.0 | 79
28Node 12 | 4.12+, <8.0 | 72
29Node 11 | 4.10+, <5.0 | 67
30Node 10 | 4.9+, <6.0 | 64
31Node 8 | 4.5.3+, <5.0 | 57
32Node <8 | <5.0 | <57
33
34<table>
35 <tr>
36 <td>
37 <img width="77px" alt="Sass logo" src="https://rawgit.com/sass/node-sass/master/media/logo.svg" />
38 </td>
39 <td valign="bottom" align="right">
40 <a href="https://www.npmjs.com/package/node-sass">
41 <img width="100%" src="https://nodei.co/npm/node-sass.png?downloads=true&downloadRank=true&stars=true">
42 </a>
43 </td>
44 </tr>
45</table>
46
47![Alpine](https://github.com/sass/node-sass/workflows/Build%20bindings%20for%20Alpine%20releases/badge.svg)
48![Linux](https://github.com/sass/node-sass/workflows/Build%20bindings%20for%20Linux%20releases/badge.svg)
49![macOS](https://github.com/sass/node-sass/workflows/Build%20bindings%20for%20macOS%20releases/badge.svg)
50![Windows x64](https://github.com/sass/node-sass/workflows/Build%20bindings%20for%20Windows%20releases/badge.svg)
51![Linting](https://github.com/sass/node-sass/workflows/Lint%20JS/badge.svg)
52[![Windows x86](https://ci.appveyor.com/api/projects/status/22mjbk59kvd55m9y/branch/master?svg=true)](https://ci.appveyor.com/project/sass/node-sass/branch/master)
53[![Coverage Status](https://coveralls.io/repos/sass/node-sass/badge.svg?branch=master)](https://coveralls.io/r/sass/node-sass?branch=master)
54
55Node-sass is a library that provides binding for Node.js to [LibSass], the C version of the popular stylesheet preprocessor, Sass.
56
57It allows you to natively compile .scss files to css at incredible speed and automatically via a connect middleware.
58
59Find it on npm: <https://www.npmjs.com/package/node-sass>
60
61Follow @nodesass on twitter for release updates: <https://twitter.com/nodesass>
62
63## Install
64
65```shell
66npm install node-sass
67```
68
69Some users have reported issues installing on Ubuntu due to `node` being registered to another package. [Follow the official NodeJS docs](https://github.com/nodesource/distributions/blob/master/README.md#debinstall) to install NodeJS so that `#!/usr/bin/env node` correctly resolves.
70
71Compiling on Windows machines requires the [node-gyp prerequisites](https://github.com/nodejs/node-gyp#on-windows).
72
73Are you seeing the following error? Check out our [Troubleshooting guide](https://github.com/sass/node-sass/blob/master/TROUBLESHOOTING.md#installing-node-sass-4x-with-node--4).**
74
75```
76SyntaxError: Use of const in strict mode.
77```
78
79**Having installation troubles? Check out our [Troubleshooting guide](https://github.com/sass/node-sass/blob/master/TROUBLESHOOTING.md).**
80
81### Install from mirror in China
82
83```shell
84npm install -g mirror-config-china --registry=https://registry.npmmirror.com
85npm install node-sass
86```
87
88## Usage
89
90```javascript
91var sass = require('node-sass');
92sass.render({
93 file: scss_filename,
94 [, options..]
95}, function(err, result) { /*...*/ });
96// OR
97var result = sass.renderSync({
98 data: scss_content
99 [, options..]
100});
101```
102
103## Options
104
105### file
106
107* Type: `String`
108* Default: `null`
109
110**Special**: `file` or `data` must be specified
111
112Path to a file for [LibSass] to compile.
113
114### data
115
116* Type: `String`
117* Default: `null`
118
119**Special**: `file` or `data` must be specified
120
121A string to pass to [LibSass] to compile. It is recommended that you use `includePaths` in conjunction with this so that [LibSass] can find files when using the `@import` directive.
122
123### importer (>= v2.0.0) - _experimental_
124
125**This is an experimental LibSass feature. Use with caution.**
126
127* Type: `Function | Function[]` signature `function(url, prev, done)`
128* Default: `undefined`
129
130Function Parameters and Information:
131
132* `url (String)` - the path in import **as-is**, which [LibSass] encountered
133* `prev (String)` - the previously resolved path
134* `done (Function)` - a callback function to invoke on async completion, takes an object literal containing
135 * `file (String)` - an alternate path for [LibSass] to use **OR**
136 * `contents (String)` - the imported contents (for example, read from memory or the file system)
137
138Handles when [LibSass] encounters the `@import` directive. A custom importer allows extension of the [LibSass] engine in both a synchronous and asynchronous manner. In both cases, the goal is to either `return` or call `done()` with an object literal. Depending on the value of the object literal, one of two things will happen.
139
140When returning or calling `done()` with `{ file: "String" }`, the new file path will be assumed for the `@import`. It's recommended to be mindful of the value of `prev` in instances where relative path resolution may be required.
141
142When returning or calling `done()` with `{ contents: "String" }`, the string value will be used as if the file was read in through an external source.
143
144Starting from v3.0.0:
145
146* `this` refers to a contextual scope for the immediate run of `sass.render` or `sass.renderSync`
147
148* importers can return error and LibSass will emit that error in response. For instance:
149
150 ```javascript
151 done(new Error('doesn\'t exist!'));
152 // or return synchronously
153 return new Error('nothing to do here');
154 ```
155
156* importer can be an array of functions, which will be called by LibSass in the order of their occurrence in array. This helps user specify special importer for particular kind of path (filesystem, http). If an importer does not want to handle a particular path, it should return `null`. See [functions section](#functions--v300---experimental) for more details on Sass types.
157
158### functions (>= v3.0.0) - _experimental_
159
160**This is an experimental LibSass feature. Use with caution.**
161
162`functions` is an `Object` that holds a collection of custom functions that may be invoked by the sass files being compiled. They may take zero or more input parameters and must return a value either synchronously (`return ...;`) or asynchronously (`done();`). Those parameters will be instances of one of the constructors contained in the `require('node-sass').types` hash. The return value must be of one of these types as well. See the list of available types below:
163
164#### types.Number(value [, unit = ""])
165
166* `getValue()`/ `setValue(value)` : gets / sets the numerical portion of the number
167* `getUnit()` / `setUnit(unit)` : gets / sets the unit portion of the number
168
169#### types.String(value)
170
171* `getValue()` / `setValue(value)` : gets / sets the enclosed string
172
173#### types.Color(r, g, b [, a = 1.0]) or types.Color(argb)
174
175* `getR()` / `setR(value)` : red component (integer from `0` to `255`)
176* `getG()` / `setG(value)` : green component (integer from `0` to `255`)
177* `getB()` / `setB(value)` : blue component (integer from `0` to `255`)
178* `getA()` / `setA(value)` : alpha component (number from `0` to `1.0`)
179
180Example:
181
182```javascript
183var Color = require('node-sass').types.Color,
184 c1 = new Color(255, 0, 0),
185 c2 = new Color(0xff0088cc);
186```
187
188#### types.Boolean(value)
189
190* `getValue()` : gets the enclosed boolean
191* `types.Boolean.TRUE` : Singleton instance of `types.Boolean` that holds "true"
192* `types.Boolean.FALSE` : Singleton instance of `types.Boolean` that holds "false"
193
194#### types.List(length [, commaSeparator = true])
195
196* `getValue(index)` / `setValue(index, value)` : `value` must itself be an instance of one of the constructors in `sass.types`.
197* `getSeparator()` / `setSeparator(isComma)` : whether to use commas as a separator
198* `getLength()`
199
200#### types.Map(length)
201
202* `getKey(index)` / `setKey(index, value)`
203* `getValue(index)` / `setValue(index, value)`
204* `getLength()`
205
206#### types.Null()
207
208* `types.Null.NULL` : Singleton instance of `types.Null`.
209
210#### Example
211
212```javascript
213sass.renderSync({
214 data: '#{headings(2,5)} { color: #08c; }',
215 functions: {
216 'headings($from: 0, $to: 6)': function(from, to) {
217 var i, f = from.getValue(), t = to.getValue(),
218 list = new sass.types.List(t - f + 1);
219
220 for (i = f; i <= t; i++) {
221 list.setValue(i - f, new sass.types.String('h' + i));
222 }
223
224 return list;
225 }
226 }
227});
228```
229
230### includePaths
231
232* Type: `Array<String>`
233* Default: `[]`
234
235An array of paths that [LibSass] can look in to attempt to resolve your `@import` declarations. When using `data`, it is recommended that you use this.
236
237### indentedSyntax
238
239* Type: `Boolean`
240* Default: `false`
241
242`true` values enable [Sass Indented Syntax](https://sass-lang.com/documentation/file.INDENTED_SYNTAX.html) for parsing the data string or file.
243
244__Note:__ node-sass/libsass will compile a mixed library of scss and indented syntax (.sass) files with the Default setting (false) as long as .sass and .scss extensions are used in filenames.
245
246### indentType (>= v3.0.0)
247
248* Type: `String`
249* Default: `space`
250
251Used to determine whether to use space or tab character for indentation.
252
253### indentWidth (>= v3.0.0)
254
255* Type: `Number`
256* Default: `2`
257* Maximum: `10`
258
259Used to determine the number of spaces or tabs to be used for indentation.
260
261### linefeed (>= v3.0.0)
262
263* Type: `String`
264* Default: `lf`
265
266Used to determine whether to use `cr`, `crlf`, `lf` or `lfcr` sequence for line break.
267
268### omitSourceMapUrl
269
270* Type: `Boolean`
271* Default: `false`
272
273**Special:** When using this, you should also specify `outFile` to avoid unexpected behavior.
274
275`true` values disable the inclusion of source map information in the output file.
276
277### outFile
278
279* Type: `String | null`
280* Default: `null`
281
282**Special:** Required when `sourceMap` is a truthy value
283
284Specify the intended location of the output file. Strongly recommended when outputting source maps so that they can properly refer back to their intended files.
285
286**Attention** enabling this option will **not** write the file on disk for you, it's for internal reference purpose only (to generate the map for example).
287
288Example on how to write it on the disk
289
290```javascript
291sass.render({
292 ...
293 outFile: yourPathTotheFile,
294 }, function(error, result) { // node-style callback from v3.0.0 onwards
295 if(!error){
296 // No errors during the compilation, write this result on the disk
297 fs.writeFile(yourPathTotheFile, result.css, function(err){
298 if(!err){
299 //file written on disk
300 }
301 });
302 }
303 });
304});
305```
306
307### outputStyle
308
309* Type: `String`
310* Default: `nested`
311* Values: `nested`, `expanded`, `compact`, `compressed`
312
313Determines the output format of the final CSS style.
314
315### precision
316
317* Type: `Integer`
318* Default: `5`
319
320Used to determine how many digits after the decimal will be allowed. For instance, if you had a decimal number of `1.23456789` and a precision of `5`, the result will be `1.23457` in the final CSS.
321
322### sourceComments
323
324* Type: `Boolean`
325* Default: `false`
326
327`true` Enables the line number and file where a selector is defined to be emitted into the compiled CSS as a comment. Useful for debugging, especially when using imports and mixins.
328
329### sourceMap
330
331* Type: `Boolean | String | undefined`
332* Default: `undefined`
333
334Enables source map generation during `render` and `renderSync`.
335
336When `sourceMap === true`, the value of `outFile` is used as the target output location for the source map with the suffix `.map` appended. If no `outFile` is set, `sourceMap` parameter is ignored.
337
338When `typeof sourceMap === "string"`, the value of `sourceMap` will be used as the writing location for the file.
339
340### sourceMapContents
341
342* Type: `Boolean`
343* Default: `false`
344
345`true` includes the `contents` in the source map information
346
347### sourceMapEmbed
348
349* Type: `Boolean`
350* Default: `false`
351
352`true` embeds the source map as a data URI
353
354### sourceMapRoot
355
356* Type: `String`
357* Default: `undefined`
358
359the value will be emitted as `sourceRoot` in the source map information
360
361## `render` Callback (>= v3.0.0)
362
363node-sass supports standard node style asynchronous callbacks with the signature of `function(err, result)`. In error conditions, the `error` argument is populated with the error object. In success conditions, the `result` object is populated with an object describing the result of the render call.
364
365### Error Object
366
367* `message` (String) - The error message.
368* `line` (Number) - The line number of error.
369* `column` (Number) - The column number of error.
370* `status` (Number) - The status code.
371* `file` (String) - The filename of error. In case `file` option was not set (in favour of `data`), this will reflect the value `stdin`.
372
373### Result Object
374
375* `css` (Buffer) - The compiled CSS. Write this to a file, or serve it out as needed.
376* `map` (Buffer) - The source map
377* `stats` (Object) - An object containing information about the compile. It contains the following keys:
378 * `entry` (String) - The path to the scss file, or `data` if the source was not a file
379 * `start` (Number) - Date.now() before the compilation
380 * `end` (Number) - Date.now() after the compilation
381 * `duration` (Number) - *end* - *start*
382 * `includedFiles` (Array) - Absolute paths to all related scss files in no particular order.
383
384### Examples
385
386```javascript
387var sass = require('node-sass');
388sass.render({
389 file: '/path/to/myFile.scss',
390 data: 'body{background:blue; a{color:black;}}',
391 importer: function(url, prev, done) {
392 // url is the path in import as is, which LibSass encountered.
393 // prev is the previously resolved path.
394 // done is an optional callback, either consume it or return value synchronously.
395 // this.options contains this options hash, this.callback contains the node-style callback
396 someAsyncFunction(url, prev, function(result){
397 done({
398 file: result.path, // only one of them is required, see section Special Behaviours.
399 contents: result.data
400 });
401 });
402 // OR
403 var result = someSyncFunction(url, prev);
404 return {file: result.path, contents: result.data};
405 },
406 includePaths: [ 'lib/', 'mod/' ],
407 outputStyle: 'compressed'
408}, function(error, result) { // node-style callback from v3.0.0 onwards
409 if (error) {
410 console.log(error.status); // used to be "code" in v2x and below
411 console.log(error.column);
412 console.log(error.message);
413 console.log(error.line);
414 }
415 else {
416 console.log(result.css.toString());
417
418 console.log(result.stats);
419
420 console.log(result.map.toString());
421 // or better
422 console.log(JSON.stringify(result.map)); // note, JSON.stringify accepts Buffer too
423 }
424});
425// OR
426var result = sass.renderSync({
427 file: '/path/to/file.scss',
428 data: 'body{background:blue; a{color:black;}}',
429 outputStyle: 'compressed',
430 outFile: '/to/my/output.css',
431 sourceMap: true, // or an absolute or relative (to outFile) path
432 importer: function(url, prev, done) {
433 // url is the path in import as is, which LibSass encountered.
434 // prev is the previously resolved path.
435 // done is an optional callback, either consume it or return value synchronously.
436 // this.options contains this options hash
437 someAsyncFunction(url, prev, function(result){
438 done({
439 file: result.path, // only one of them is required, see section Special Behaviours.
440 contents: result.data
441 });
442 });
443 // OR
444 var result = someSyncFunction(url, prev);
445 return {file: result.path, contents: result.data};
446 }
447});
448
449console.log(result.css);
450console.log(result.map);
451console.log(result.stats);
452```
453
454### Special behaviours
455
456* In the case that both `file` and `data` options are set, node-sass will give precedence to `data` and use `file` to calculate paths in sourcemaps.
457
458### Version information (>= v2.0.0)
459
460Both `node-sass` and `libsass` version info is now exposed via the `info` method:
461
462```javascript
463var sass = require('node-sass');
464
465console.log(sass.info);
466
467/*
468 it will output something like:
469
470 node-sass 2.0.1 (Wrapper) [JavaScript]
471 libsass 3.1.0 (Sass Compiler) [C/C++]
472*/
473```
474
475Since node-sass >=v3.0.0 LibSass version is determined at run time.
476
477## Integrations
478
479Listing of community uses of node-sass in build tools and frameworks.
480
481### Brackets extension
482
483[@jasonsanjose](https://github.com/jasonsanjose) has created a [Brackets](http://brackets.io) extension based on node-sass: <https://github.com/jasonsanjose/brackets-sass>. When editing Sass files, the extension compiles changes on save. The extension also integrates with Live Preview to show Sass changes in the browser without saving or compiling.
484
485### Brunch plugin
486
487[Brunch](http://brunch.io)'s official sass plugin uses node-sass by default, and automatically falls back to ruby if use of Compass is detected: <https://github.com/brunch/sass-brunch>
488
489### Connect/Express middleware
490
491Recompile `.scss` files automatically for connect and express based http servers.
492
493This functionality has been moved to [`node-sass-middleware`](https://github.com/sass/node-sass-middleware) in node-sass v1.0.0
494
495### DocPad Plugin
496
497[@10xLaCroixDrinker](https://github.com/10xLaCroixDrinker) wrote a [DocPad](http://docpad.org/) plugin that compiles `.scss` files using node-sass: <https://github.com/docpad/docpad-plugin-nodesass>
498
499### Duo.js extension
500
501[@stephenway](https://github.com/stephenway) has created an extension that transpiles Sass to CSS using node-sass with [duo.js](http://duojs.org/)
502<https://github.com/duojs/sass>
503
504### Grunt extension
505
506[@sindresorhus](https://github.com/sindresorhus/) has created a set of grunt tasks based on node-sass: <https://github.com/sindresorhus/grunt-sass>
507
508### Gulp extension
509
510[@dlmanning](https://github.com/dlmanning/) has created a gulp sass plugin based on node-sass: <https://github.com/dlmanning/gulp-sass>
511
512### Harp
513
514[@sintaxi](https://github.com/sintaxi)’s Harp web server implicitly compiles `.scss` files using node-sass: <https://github.com/sintaxi/harp>
515
516### Metalsmith plugin
517
518[@stevenschobert](https://github.com/stevenschobert/) has created a metalsmith plugin based on node-sass: <https://github.com/stevenschobert/metalsmith-sass>
519
520### Meteor plugin
521
522[@fourseven](https://github.com/fourseven) has created a meteor plugin based on node-sass: <https://github.com/fourseven/meteor-scss>
523
524### Mimosa module
525
526[@dbashford](https://github.com/dbashford) has created a Mimosa module for sass which includes node-sass: <https://github.com/dbashford/mimosa-sass>
527
528## Example App
529
530There is also an example connect app here: <https://github.com/andrew/node-sass-example>
531
532## Rebuilding binaries
533
534Node-sass includes pre-compiled binaries for popular platforms, to add a binary for your platform follow these steps:
535
536Check out the project:
537
538```bash
539git clone --recursive https://github.com/sass/node-sass.git
540cd node-sass
541npm install
542node scripts/build -f # use -d switch for debug release
543# if succeeded, it will generate and move
544# the binary in vendor directory.
545```
546
547## Command Line Interface
548
549The interface for command-line usage is fairly simplistic at this stage, as seen in the following usage section.
550
551Output will be sent to stdout if the `--output` flag is omitted.
552
553### Usage
554
555 `node-sass [options] <input> [output]`
556 Or:
557 `cat <input> | node-sass > output`
558
559Example:
560
561`node-sass src/style.scss dest/style.css`
562
563 **Options:**
564
565```bash
566 -w, --watch Watch a directory or file
567 -r, --recursive Recursively watch directories or files
568 -o, --output Output directory
569 -x, --omit-source-map-url Omit source map URL comment from output
570 -i, --indented-syntax Treat data from stdin as sass code (versus scss)
571 -q, --quiet Suppress log output except on error
572 -v, --version Prints version info
573 --output-style CSS output style (nested | expanded | compact | compressed)
574 --indent-type Indent type for output CSS (space | tab)
575 --indent-width Indent width; number of spaces or tabs (maximum value: 10)
576 --linefeed Linefeed style (cr | crlf | lf | lfcr)
577 --source-comments Include debug info in output
578 --source-map Emit source map
579 --source-map-contents Embed include contents in map
580 --source-map-embed Embed sourceMappingUrl as data URI
581 --source-map-root Base path, will be emitted in source-map as is
582 --include-path Path to look for imported files
583 --follow Follow symlinked directories
584 --precision The amount of precision allowed in decimal numbers
585 --error-bell Output a bell character on errors
586 --importer Path to .js file containing custom importer
587 --functions Path to .js file containing custom functions
588 --help Print usage info
589```
590
591The `input` can be either a single `.scss` or `.sass`, or a directory. If the input is a directory the `--output` flag must also be supplied.
592
593Also, note `--importer` takes the (absolute or relative to pwd) path to a js file, which needs to have a default `module.exports` set to the importer function. See our test [fixtures](https://github.com/sass/node-sass/tree/974f93e76ddd08ea850e3e663cfe64bb6a059dd3/test/fixtures/extras) for example.
594
595The `--source-map` option accepts a boolean value, in which case it replaces destination extension with `.css.map`. It also accepts path to `.map` file and even path to the desired directory.
596When compiling a directory `--source-map` can either be a boolean value or a directory.
597
598## Binary configuration parameters
599
600node-sass supports different configuration parameters to change settings related to the sass binary such as binary name, binary path or alternative download path. Following parameters are supported by node-sass:
601
602Variable name | .npmrc parameter | Process argument | Value
603-------------------------|--------------------------|----------------------------|------
604SASS_BINARY_NAME | sass_binary_name | --sass-binary-name | path
605SASS_BINARY_SITE | sass_binary_site | --sass-binary-site | URL
606SASS_BINARY_PATH | sass_binary_path | --sass-binary-path | path
607SASS_BINARY_DIR | sass_binary_dir | --sass-binary-dir | path
608SASS_REJECT_UNAUTHORIZED | sass_reject_unauthorized | --sass-reject-unauthorized | value
609
610These parameters can be used as environment variable:
611
612* E.g. `export SASS_BINARY_SITE=http://example.com/`
613
614As local or global [.npmrc](https://docs.npmjs.com/misc/config) configuration file:
615
616* E.g. `sass_binary_site=http://example.com/`
617
618As a process argument:
619
620* E.g. `npm install node-sass --sass-binary-site=http://example.com/`
621
622If you are using self-signed certificates for your binary then `SASS_REJECT_UNAUTHORIZED` will override (rejectUnauthorized)[https://nodejs.org/docs/latest/api/tls.html#tls_tls_createserver_options_secureconnectionlistener].
623
624## Post-install Build
625
626Install runs only two Mocha tests to see if your machine can use the pre-built [LibSass] which will save some time during install. If any tests fail it will build from source.
627
628## Maintainers
629
630This module is brought to you and maintained by the following people:
631
632* Michael Mifsud - Project Lead ([Github](https://github.com/xzyfer) / [Twitter](https://twitter.com/xzyfer))
633* Andrew Nesbitt ([Github](https://github.com/andrew) / [Twitter](https://twitter.com/teabass))
634* Dean Mao ([Github](https://github.com/deanmao) / [Twitter](https://twitter.com/deanmao))
635* Brett Wilkins ([Github](https://github.com/bwilkins) / [Twitter](https://twitter.com/bjmaz))
636* Keith Cirkel ([Github](https://github.com/keithamus) / [Twitter](https://twitter.com/Keithamus))
637* Laurent Goderre ([Github](https://github.com/laurentgoderre) / [Twitter](https://twitter.com/laurentgoderre))
638* Nick Schonning ([Github](https://github.com/nschonni) / [Twitter](https://twitter.com/nschonni))
639* Adeel Mujahid ([Github](https://github.com/am11) / [Twitter](https://twitter.com/adeelbm))
640
641## Contributors
642
643We <3 our contributors! A special thanks to all those who have clocked in some dev time on this project, we really appreciate your hard work. You can find [a full list of those people here.](https://github.com/sass/node-sass/graphs/contributors)
644
645### Note on Patches/Pull Requests
646
647Check out our [Contributing guide](/.github/CONTRIBUTING.md)
648
649## Copyright
650
651Copyright (c) 2015 Andrew Nesbitt. See [LICENSE](https://github.com/sass/node-sass/blob/master/LICENSE) for details.
652
653[LibSass]: https://github.com/sass/libsass
654
\No newline at end of file