improve scss compile performance

Now only scss-compile and css-lint the modified file.
stable
Juanfran 2014-10-27 16:10:35 +01:00
parent 82b0a591f9
commit 016786709e
21 changed files with 504 additions and 467 deletions

View File

@ -13,26 +13,8 @@
}
}
%button,
.button {
@extend %medium;
@extend %title;
@include transition (background .3s linear);
display: inline-block;
padding: 7px 40px 6px;
text-transform: uppercase;
&:hover {
@include transition (background .3s linear);
}
&.loading {
span {
@include animation (loading .5s linear);
@include animation (spin 1s linear infinite);
}
}
.icon {
margin-right: .3rem;
}
@extend %button;
}
a.button-green {

View File

@ -1,41 +0,0 @@
@mixin popover($width, $top: '', $left: '', $bottom: '', $right: '', $arrow-width: 0, $arrow-top: '', $arrow-left: '', $arrow-bottom: '') {
@extend %text;
background: $blackish;
bottom: #{$bottom};
color: $white;
display: none;
left: #{$left};
list-style-type: none;
margin: 0;
padding: 10px;
position: absolute;
right: #{$right};
top: #{$top};
width: $width;
z-index: 99;
a {
@extend %small;
border-bottom: 1px solid $grayer;
color: $white;
display: block;
padding: 10px 2px;
&:last-child {
border: 0;
}
&:hover {
color: $fresh-taiga;
@include transition (color .3s linear);
}
}
&:after {
@include transform(rotate(45deg));
background: $blackish;
bottom: #{$arrow-bottom};
content: '';
height: 15px;
left: #{$arrow-left};
position: absolute;
top: #{$arrow-top};
width: #{$arrow-width};
}
}

View File

@ -1 +0,0 @@

View File

@ -1,8 +1,3 @@
// FTW
* {
box-sizing: border-box;
}
//Flexbox FTW
%table-flex {
align-content: stretch;
@ -20,132 +15,94 @@
width: 300px;
}
// #Reset & Basics (Inspired by E. Meyers)
//==================================================
a,
abbr,
acronym,
address,
applet,
article,
aside,
audio,
b,
big,
blockquote,
body,
canvas,
caption,
center,
cite,
code,
dd,
del,
details,
dfn,
div,
dl,
dt,
em,
embed,
fieldset,
figcaption,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
hgroup,
html,
i,
iframe,
img,
ins,
kbd,
label,
legend,
li,
mark,
menu,
nav,
object,
ol,
output,
p,
pre,
q,
ruby,
s,
samp,
section,
small,
span,
strike,
strong,
sub,
summary,
sup,
table,
tbody,
td,
tfoot,
th,
thead,
time,
tr,
tt,
u,
ul,
var,
video {
border: 0;
font: inherit;
font-size: 100%;
margin: 0;
padding: 0;
vertical-align: baseline;
// __Font Sizes__ //
%xsmall {font-size: .5rem;}
%small {font-size: .8rem;}
%medium {font-size: 1rem;}
%large {font-size: 1.2rem;}
%larger {font-size: 1.6rem;}
%xlarge {font-size: 2rem;}
%xxlarge {font-size: 3rem;}
// __Font Types__ //
%title {font-family: 'OpenSans-CondLight';}
%text {font-family: 'opensans-regular'; line-height: 1.3rem;}
%bold {font-family: 'opensans-semibold';}
%taiga {font-family: 'taiga';}
%lightbox {
background: rgba($white, .95);
bottom: 0;
display: none;
left: 0;
opacity: 0;
position: fixed;
right: 0;
top: 0;
z-index: 99910;
.close {
@extend %large;
position: absolute;
right: 2rem;
top: 2rem;
}
&.open {
@include table-flex(center, center, flex, row, wrap, center);
@include transition (opacity .3s ease);
opacity: 1;
}
&.close {
@include transition (opacity .3s ease);
opacity: 0;
}
.title {
text-align: center;
}
input,
textarea,
select {
margin-bottom: 1rem;
}
textarea {
resize: vertical;
}
.button-green,
.button-gray {
display: block;
padding: 12px;
text-align: center;
}
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
display: block;
}
body {
line-height: 1;
%button {
@extend %medium;
@extend %title;
@include transition (background .3s linear);
display: inline-block;
padding: 7px 40px 6px;
text-transform: uppercase;
&:hover {
@include transition (background .3s linear);
}
&.loading {
span {
@include animation (loading .5s linear);
@include animation (spin 1s linear infinite);
}
}
.icon {
margin-right: .3rem;
}
}
ol,
ul {
list-style: none;
// Background
%triangled-bg {
background: url('/images/bg.png') no-repeat center center;
background-size: cover;
}
blockquote,
q {
quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content: '';
}
table {
border-collapse: collapse;
border-spacing: 0;
}
%background-taiga {
background: url('/images/invitation_bg.jpg') no-repeat center center;
background-size: cover;
}

View File

@ -5,10 +5,6 @@
text-overflow: ellipsis;
}
@mixin background-opacity($color: $white, $opacity: .3) {
background: rgba($color, $opacity);
}
// Table Flex - http://devbryce.com/site/flexbox/
@mixin table-flex($align-content: stretch, $align-items: stretch, $display: flex, $flex-direction: row, $flex-wrap: wrap, $justify-content: flex-start) {
@include display($display);
@ -54,3 +50,45 @@
@mixin background($red: 255, $green: 255, $blue: 255, $opacity: 1) {
background: rgba($red, $green, $blue, $opacity);
}
@mixin popover($width, $top: '', $left: '', $bottom: '', $right: '', $arrow-width: 0, $arrow-top: '', $arrow-left: '', $arrow-bottom: '') {
@extend %text;
background: $blackish;
bottom: #{$bottom};
color: $white;
display: none;
left: #{$left};
list-style-type: none;
margin: 0;
padding: 10px;
position: absolute;
right: #{$right};
top: #{$top};
width: $width;
z-index: 99;
a {
@extend %small;
border-bottom: 1px solid $grayer;
color: $white;
display: block;
padding: 10px 2px;
&:last-child {
border: 0;
}
&:hover {
color: $fresh-taiga;
@include transition (color .3s linear);
}
}
&:after {
@include transform(rotate(45deg));
background: $blackish;
bottom: #{$arrow-bottom};
content: '';
height: 15px;
left: #{$arrow-left};
position: absolute;
top: #{$arrow-top};
width: #{$arrow-width};
}
}

View File

@ -0,0 +1,16 @@
// Bourbon
$prefix-for-webkit: true;
$prefix-for-mozilla: true;
$prefix-for-microsoft: true;
$prefix-for-opera: true;
$prefix-for-spec: true;
@import '../bourbon/bourbon';
//#################################################
// dependencies
//#################################################
@import '../dependencies/colors';
@import '../dependencies/mixins';
@import '../dependencies/helpers';
@import '../dependencies/responsive';

View File

@ -98,6 +98,21 @@ body {
@include table-flex-child(1, 260px, 0, 260px);
background: $whitish;
padding: 2rem 1rem;
&.filters-bar {
@include table-flex-child(0, 1px, 0, 1px);
@include transition(all .2s linear);
padding: 0;
&.active {
@include table-flex-child(1, 260px, 0, 260px);
@include transition(all .2s linear);
padding: 2em 1em;
.filters-inner {
@include transition (all .4s ease-in);
opacity: 1;
}
}
}
}
.menu-tertiary {

View File

@ -51,18 +51,6 @@ sup {
cursor: move;
}
// Background
%triangled-bg {
background: url('/images/bg.png') no-repeat center center;
background-size: cover;
}
%background-taiga {
background: url('/images/invitation_bg.jpg') no-repeat center center;
background-size: cover;
}
//Datepicker
.pika-single {
z-index: 999999;

View File

@ -0,0 +1,135 @@
// FTW
* {
box-sizing: border-box;
}
// #Reset & Basics (Inspired by E. Meyers)
//==================================================
a,
abbr,
acronym,
address,
applet,
article,
aside,
audio,
b,
big,
blockquote,
body,
canvas,
caption,
center,
cite,
code,
dd,
del,
details,
dfn,
div,
dl,
dt,
em,
embed,
fieldset,
figcaption,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
hgroup,
html,
i,
iframe,
img,
ins,
kbd,
label,
legend,
li,
mark,
menu,
nav,
object,
ol,
output,
p,
pre,
q,
ruby,
s,
samp,
section,
small,
span,
strike,
strong,
sub,
summary,
sup,
table,
tbody,
td,
tfoot,
th,
thead,
time,
tr,
tt,
u,
ul,
var,
video {
border: 0;
font: inherit;
font-size: 100%;
margin: 0;
padding: 0;
vertical-align: baseline;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
display: block;
}
body {
line-height: 1;
}
ol,
ul {
list-style: none;
}
blockquote,
q {
quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content: '';
}
table {
border-collapse: collapse;
border-spacing: 0;
}

View File

@ -25,21 +25,6 @@ h6 {
}
}
// __Font Sizes__ //
%xsmall {font-size: .5rem;}
%small {font-size: .8rem;}
%medium {font-size: 1rem;}
%large {font-size: 1.2rem;}
%larger {font-size: 1.6rem;}
%xlarge {font-size: 2rem;}
%xxlarge {font-size: 3rem;}
// __Font Types__ //
%title {font-family: 'OpenSans-CondLight';}
%text {font-family: 'opensans-regular'; line-height: 1.3rem;}
%bold {font-family: 'opensans-semibold';}
%taiga {font-family: 'taiga';}
h1 {
@extend %xxlarge;
@extend %title;
@ -255,4 +240,3 @@ a:visited {
.icon-stats:before {
content: 'L';
}

View File

@ -1,149 +0,0 @@
// THIS IS THE MAIN INCLUDES SASS FILE
// Bourbon
$prefix-for-webkit: true;
$prefix-for-mozilla: true;
$prefix-for-microsoft: true;
$prefix-for-opera: true;
$prefix-for-spec: true;
@import 'bourbon/bourbon';
// Codehilite
@import 'vendor/codehilite.github';
//#################################################
// dependencies
//#################################################
@import 'dependencies/helpers';
@import 'dependencies/colors';
@import 'dependencies/typography';
@import 'dependencies/elements';
@import 'dependencies/mixins';
@import 'dependencies/responsive';
@import 'dependencies/forms';
@import 'dependencies/animation';
//#################################################
// components
//#################################################
@import 'components/buttons';
@import 'components/avatar';
@import 'components/summary';
@import 'components/popover';
@import 'components/tag';
@import 'components/filter';
@import 'components/taskboard-task';
@import 'components/kanban-task';
@import 'components/notification-message';
@import 'components/basic-table';
@import 'components/paginator';
@import 'components/watchers';
@import 'components/level';
@import 'components/created-by';
@import 'components/wysiwyg';
@import 'components/select-color';
@import 'components/loader';
@import 'components/spinner';
@import 'components/help-notion-button';
@import 'components/beta';
//#################################################
// Modules
//#################################################
//Common modules
@import 'modules/common/assigned-to';
@import 'modules/common/nav';
@import 'modules/common/projects-nav';
@import 'modules/common/lightbox';
@import 'modules/common/colors-table';
@import 'modules/common/category-config';
@import 'modules/common/attachments';
@import 'modules/common/related-tasks';
@import 'modules/common/history';
@import 'modules/common/wizard';
//Project modules
@import 'modules/home-projects-list';
@import 'modules/home-project';
@import 'modules/create-project';
//Issues modules
@import 'modules/issues/issues-table';
//Kanban modules
@import 'modules/kanban/kanban-table';
//Search modules
@import 'modules/search/search-filter';
@import 'modules/search/search-result-table';
@import 'modules/search/search-in';
//Filters modules
@import 'modules/filters/filters';
@import 'modules/filters/list-filters';
@import 'modules/filters/filter-tags';
//Backlog modules
@import 'modules/backlog/sprints';
@import 'modules/backlog/burndown';
@import 'modules/backlog/backlog-table';
@import 'modules/backlog/taskboard-table';
//Login modules
@import 'modules/auth/login-form';
@import 'modules/auth/register-form';
@import 'modules/auth/forgot-form';
@import 'modules/auth/change-password-from-recovery';
//Wiki modules
@import 'modules/wiki/wiki-nav';
@import 'modules/wiki/wiki-summary';
//modules admin
@import 'modules/admin/admin-menu';
@import 'modules/admin/admin-submenu';
@import 'modules/admin/admin-submenu-roles';
@import 'modules/admin/admin-roles';
@import 'modules/admin/admin-functionalities';
@import 'modules/admin/admin-membership-table';
@import 'modules/admin/admin-project-profile';
@import 'modules/admin/default-values';
@import 'modules/admin/project-values';
//Modules user Settings
@import 'modules/user-settings/user-profile';
@import 'modules/user-settings/user-change-password';
@import 'modules/user-settings/mail-notifications-table';
//#################################################
// Layout
//#################################################
@import 'layout/base';
@import 'layout/login';
@import 'layout/invitation';
@import 'layout/not-found';
@import 'layout/backlog';
@import 'layout/taskboard';
@import 'layout/us-detail';
@import 'layout/admin-memberships';
@import 'layout/admin-project-values';
@import 'layout/project-colors';
@import 'layout/kanban';
@import 'layout/issues';
@import 'layout/wiki';
@import 'layout/wiki-edit';
//#################################################
// Help
//#################################################
@import 'modules/help/lightbox-generic-notion';
//#################################################
// Shame
//#################################################
@import 'shame/shame';

View File

@ -14,7 +14,6 @@
padding: .5rem 0 .5rem .5rem;
text-align: left;
width: 100%;
}
.backlog-table-title,
.backlog-table-subtitle,
@ -24,6 +23,7 @@
}
.user-stories {
width: 100%;
}
.status {
@include table-flex-child(0, 150px, 0);

View File

@ -1,46 +1,5 @@
.lightbox,
%lightbox {
@include background-opacity($white, .95);
bottom: 0;
display: none;
left: 0;
opacity: 0;
position: fixed;
right: 0;
top: 0;
z-index: 99910;
.close {
@extend %large;
position: absolute;
right: 2rem;
top: 2rem;
}
&.open {
@include table-flex(center, center, flex, row, wrap, center);
@include transition (opacity .3s ease);
opacity: 1;
}
&.close {
@include transition (opacity .3s ease);
opacity: 0;
}
.title {
text-align: center;
}
input,
textarea,
select {
margin-bottom: 1rem;
}
textarea {
resize: vertical;
}
.button-green,
.button-gray {
display: block;
padding: 12px;
text-align: center;
}
.lightbox {
@extend %lightbox;
}
.markdown-preview {

View File

@ -1,21 +1,3 @@
.menu-secondary {
&.filters-bar {
@include table-flex-child(0, 1px, 0, 1px);
@include transition(all .2s linear);
padding: 0;
&.active {
@include table-flex-child(1, 260px, 0, 260px);
@include transition(all .2s linear);
padding: 2em 1em;
.filters-inner {
@include transition (all .4s ease-in);
opacity: 1;
}
}
}
}
.filters {
h1 {
vertical-align: baseline;
@ -47,13 +29,11 @@
right: .7rem;
top: .7rem;
}
}
.filters-inner {
opacity: 0;
@include transition (all .1s ease-in);
.loading {
background: $grayer;
border: 1px solid #b8b8b8;

View File

@ -8,6 +8,7 @@ plumber = require("gulp-plumber")
wrap = require("gulp-wrap")
rename = require("gulp-rename")
flatten = require('gulp-flatten')
gulpif = require('gulp-if')
minifyHTML = require("gulp-minify-html")
sass = require("gulp-ruby-sass")
@ -20,11 +21,19 @@ newer = require("gulp-newer")
cache = require("gulp-cached")
jadeInheritance = require('gulp-jade-inheritance')
sourcemaps = require('gulp-sourcemaps')
insert = require("gulp-insert")
runSequence = require('run-sequence')
lazypipe = require('lazypipe')
rimraf = require('rimraf')
mainSass = require("./main-sass").files
paths = {}
paths.app = "app/"
paths.dist = "dist/"
paths.tmp = "tmp/"
paths.tmpStyles = paths.tmp + "styles/"
paths.tmpStylesExtras = "#{paths.tmpStyles}/taiga-front-extras/**/*.css"
paths.extras = "extras/"
paths.jade = [
@ -38,9 +47,11 @@ paths.svg = paths.app + "svg/**/*"
paths.css = paths.app + "styles/vendor/*.css"
paths.locales = paths.app + "locales/**/*.json"
paths.sass = [
paths.app + "styles/**/*.scss"
"#{paths.app}/styles/**/*.scss"
"#{paths.app}/plugins/**/*.scss"
"!#{paths.app}/styles/bourbon/**/*.scss"
paths.app + "plugins/**/*.scss"
"!#{paths.app}/styles/dependencies/**/*.scss"
"!#{paths.app}/styles/extras/**/*.scss"
]
paths.coffee = [
@ -93,6 +104,8 @@ paths.js = [
paths.app + "plugins/**/*.js"
]
isDeploy = process.argv[process.argv.length - 1] == 'deploy'
############################################################################
# Layout/CSS Related tasks
##############################################################################
@ -118,38 +131,54 @@ gulp.task "templates", ->
.pipe(jade({pretty: true, locals:{v:(new Date()).getTime()}}))
.pipe(gulp.dest(paths.dist))
##############################################################################
# CSS Related tasks
##############################################################################
gulp.task "sass-lint", ->
gulp.src(paths.sass)
.pipe(cache("sasslint"))
.pipe(scsslint({config: "scsslint.yml"}))
.pipe(gulpif(!isDeploy, scsslint({config: "scsslint.yml"})))
gulp.task "sass-watch", ["sass-lint"], ->
gulp.src(["#{paths.app}/styles/main.scss", "#{paths.app}/plugins/**/*.scss"])
gulp.task "sass-compile", ["sass-lint"], ->
gulp.src(paths.sass)
.pipe(plumber())
.pipe(concat("all.scss"))
.pipe(sass())
.pipe(rename("app.css"))
.pipe(cache("scss"))
.pipe(insert.prepend('@import "dependencies";'))
.pipe(sass({
'sourcemap=none': true,
loadPath: [
"#{paths.app}styles/extras/"
]
}))
.pipe(gulp.dest(paths.tmpStyles))
csslintChannel = lazypipe()
.pipe(csslint, "csslintrc.json")
.pipe(csslint.reporter)
gulp.task "css-lint-app", ->
gulp.src(mainSass.concat([paths.tmpStylesExtras]))
.pipe(cache("csslint"))
.pipe(gulpif(!isDeploy, csslintChannel()))
gulp.task "css-join", ["css-lint-app"], ->
gulp.src(mainSass.concat([paths.tmpStylesExtras]))
.pipe(concat("app.css"))
.pipe(gulp.dest(paths.tmp))
gulp.task "sass-deploy", ->
gulp.src(["#{paths.app}/styles/main.scss", "#{paths.app}/plugins/**/*.scss"])
.pipe(plumber())
.pipe(concat("all.scss"))
.pipe(sass())
.pipe(rename("app.css"))
.pipe(gulp.dest(paths.tmp))
gulp.task "css-app", ->
runSequence("sass-compile", "css-join")
gulp.task "css-vendor", ->
gulp.src(paths.css)
.pipe(concat("vendor.css"))
.pipe(gulp.dest(paths.tmp))
gulp.task "css-lint-app", ["sass-watch"], ->
gulp.src(paths.tmp + "app.css")
.pipe(csslint("csslintrc.json"))
.pipe(csslint.reporter())
gulp.task "delete-tmp-styles", (cb) ->
rimraf(paths.tmpStyles, cb)
gulp.task "styles-watch", ["sass-watch", "css-vendor", "css-lint-app"], ->
gulp.task "styles-watch", ["css-app", "css-vendor"], ->
_paths = [
paths.tmp + "vendor.css",
paths.tmp + "app.css"
@ -157,18 +186,11 @@ gulp.task "styles-watch", ["sass-watch", "css-vendor", "css-lint-app"], ->
gulp.src(_paths)
.pipe(concat("main.css"))
.pipe(gulpif(isDeploy, minifyCSS()))
.pipe(gulp.dest(paths.dist + "styles/"))
gulp.task "styles-deploy", ["sass-deploy", "css-vendor"], ->
_paths = [
paths.tmp + "vendor.css",
paths.tmp + "app.css"
]
gulp.src(_paths)
.pipe(concat("main.css"))
.pipe(minifyCSS())
.pipe(gulp.dest(paths.dist + "styles/"))
gulp.task "styles", ["delete-tmp-styles"], ->
gulp.start("styles-watch")
##############################################################################
# JS Related tasks
@ -297,19 +319,21 @@ gulp.task "watch", ->
gulp.task "deploy", [
"delete-tmp-styles",
"templates",
"copy",
"jade-deploy",
"app-deploy",
"jslibs-deploy",
"styles-deploy"
"styles"
]
# The default task (called when you run gulp from cli)
gulp.task "default", [
"delete-tmp-styles",
"copy",
"templates",
"styles-watch",
"styles",
"app-watch",
"jslibs-watch",
"jade-deploy",

144
main-sass.js Normal file
View File

@ -0,0 +1,144 @@
exports.files = function () {
var base = process.cwd() + "/tmp/styles/";
var files = [
// Codehilite
'vendor/codehilite.github',
//#################################################
// Layout
//#################################################
'layout/reset',
'layout/base',
'layout/animation',
'layout/typography',
'layout/login',
'layout/invitation',
'layout/elements',
'layout/forms',
'layout/not-found',
'layout/backlog',
'layout/taskboard',
'layout/us-detail',
'layout/admin-memberships',
'layout/admin-project-values',
'layout/project-colors',
'layout/kanban',
'layout/issues',
'layout/wiki',
'layout/wiki-edit',
//#################################################
// components
//#################################################
'components/buttons',
'components/avatar',
'components/summary',
'components/popover',
'components/tag',
'components/filter',
'components/taskboard-task',
'components/kanban-task',
'components/notification-message',
'components/basic-table',
'components/paginator',
'components/watchers',
'components/level',
'components/created-by',
'components/wysiwyg',
'components/select-color',
'components/loader',
'components/spinner',
'components/help-notion-button',
'components/beta',
//#################################################
// Modules
//#################################################
//Common modules
'modules/common/assigned-to',
'modules/common/nav',
'modules/common/projects-nav',
'modules/common/lightbox',
'modules/common/colors-table',
'modules/common/category-config',
'modules/common/attachments',
'modules/common/related-tasks',
'modules/common/history',
'modules/common/wizard',
//Project modules
'modules/home-projects-list',
'modules/home-project',
'modules/create-project',
//Issues modules
'modules/issues/issues-table',
//Kanban modules
'modules/kanban/kanban-table',
//Search modules
'modules/search/search-filter',
'modules/search/search-result-table',
'modules/search/search-in',
//Filters modules
'modules/filters/filters',
'modules/filters/list-filters',
'modules/filters/filter-tags',
//Backlog modules
'modules/backlog/sprints',
'modules/backlog/burndown',
'modules/backlog/backlog-table',
'modules/backlog/taskboard-table',
//Login modules
'modules/auth/login-form',
'modules/auth/register-form',
'modules/auth/forgot-form',
'modules/auth/change-password-from-recovery',
//Wiki modules
'modules/wiki/wiki-nav',
'modules/wiki/wiki-summary',
//modules admin
'modules/admin/admin-menu',
'modules/admin/admin-submenu',
'modules/admin/admin-submenu-roles',
'modules/admin/admin-roles',
'modules/admin/admin-functionalities',
'modules/admin/admin-membership-table',
'modules/admin/admin-project-profile',
'modules/admin/default-values',
'modules/admin/project-values',
//Modules user Settings
'modules/user-settings/user-profile',
'modules/user-settings/user-change-password',
'modules/user-settings/mail-notifications-table',
//#################################################
// Help
//#################################################
'modules/help/lightbox-generic-notion',
//#################################################
// Shame
//#################################################
'shame/shame',
];
files = files.map(function (file) {
return base + file + ".css";
});
return files;
}();

View File

@ -29,6 +29,8 @@
"gulp-csslint": "^0.1.5",
"gulp-flatten": "0.0.4",
"gulp-if": "0.0.5",
"gulp-insert": "^0.4.0",
"gulp-intermediate": "^3.0.1",
"gulp-jade": "^0.5.0",
"gulp-jade-inheritance": "0.0.4",
"gulp-minify-css": "^0.3.1",
@ -37,7 +39,7 @@
"gulp-notify": "^1.2.5",
"gulp-plumber": "^0.6.2",
"gulp-rename": "^1.2.0",
"gulp-ruby-sass": "^0.4.3",
"gulp-ruby-sass": "^0.7.1",
"gulp-scss-lint": "0.1.1",
"gulp-sourcemaps": "^1.2.4",
"gulp-styledocco": "0.0.1",
@ -46,7 +48,11 @@
"gulp-util": "~2.2.14",
"gulp-watch": "^0.5.4",
"gulp-wrap": "^0.3.0",
"lazypipe": "^0.2.2",
"readable-stream": "~1.0.31",
"rimraf": "^2.2.8",
"run-sequence": "^1.0.1",
"gulp-if": "^1.2.5",
"through2": "~0.6.1"
}
}