Skip to content

Commit

Permalink
* Updated Scss structure.
Browse files Browse the repository at this point in the history
* Added check-deps for automated dependencies updating from package.json.
* Automated image minification.
  • Loading branch information
VaclovasV committed May 29, 2017
1 parent ff9e378 commit 4b0200e
Show file tree
Hide file tree
Showing 24 changed files with 301 additions and 179 deletions.
14 changes: 12 additions & 2 deletions .editorConfig
@@ -1,3 +1,13 @@
[package.json]
# http://editorconfig.org
root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false
2 changes: 1 addition & 1 deletion .nvmrc
@@ -1 +1 @@
"5.11"
"6.4.0"
15 changes: 11 additions & 4 deletions CHANGELOG.md
@@ -1,5 +1,12 @@
### 2.0.0 (July 13, 2016)
### 2.0.0 (July 1, 2017)

* Updated normalize.scss to v4.1.1.
* Added .nvmrc file for use with node version manager. Node 6.4.0 version is required.
* Added .eslintrc file with eslint configuration + lodash, react plugins.
* Updated Scss structure.
* Added check-deps for automated dependencies updating from package.json.
* Automated image minification.
* Moved from scss-lint to sass-lint, fixed issues in code.
* Added language tag in HTML.
* Added gulp-accessibility task for automated accessibility testing.

* Updated normalize.scss to v4.1.1
* Added .nvmrc file for use with node version manager. Node 5.11 version is required.
* Added .eslintrc file with eslint configuration + lodash, react plugins
2 changes: 1 addition & 1 deletion gulp-tasks/compile-scss.js
Expand Up @@ -28,7 +28,7 @@ module.exports = function() {
outputStyle: 'expanded',
sourceMap: true,
noCache: false,
includePaths: [].concat(neat, bourbon)
includePaths: [].concat(neat, bourbon, config.tmp)
}))
.on('error', swallowError)
.pipe(csso())
Expand Down
9 changes: 9 additions & 0 deletions gulp-tasks/create-hook.js
@@ -0,0 +1,9 @@
const gulp = require("gulp");
const rename = require("gulp-rename");

module.exports = function () {

return gulp.src("./.pre-commit")
.pipe(rename("pre-commit"))
.pipe(gulp.dest("./.git/hooks"));
};
67 changes: 34 additions & 33 deletions gulp-tasks/create-svg-sprite.js
@@ -1,39 +1,40 @@
module.exports = function () {
var gulp = require('gulp'),
plumber = require('gulp-plumber'),
svg2png = require('gulp-svg2png'),
config = require('../gulp.config.js')(),
svgSprite = require('gulp-svg-sprite');
module.exports = function (done) {
var gulp = require("gulp"),
runSequence = require("run-sequence").use(gulp),
plumber = require("gulp-plumber"),
svg2png = require("gulp-svg2png"),
config = require("../gulp.config.js")(),
svgSprite = require("gulp-svg-sprite");

gulp.task('svg-sprite', function () {
gulp.src(config.svg.sourceFolder + '*.svg')
.pipe(plumber({
errorHandler: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(svgSprite(config.svgConfig))
.pipe(gulp.dest('./'));
});
gulp.task("svg-sprite", function () {
return gulp.src(config.svg.sourceFolder + "*.svg")
.pipe(plumber({
errorHandler: function (err) {
console.log(err);
this.emit("end");
}
}))
.pipe(svgSprite(config.svgConfig))
.pipe(gulp.dest("./"));
});

gulp.task('png-sprite', ['svg-sprite'], function () {
gulp.src(config.svg.spriteFolder + '*.svg')
.pipe(plumber({
errorHandler: function () {
console.log(err);
this.emit('end');
}
}))
.pipe(svg2png())
.pipe(gulp.dest(config.svg.spriteFolder));
});
gulp.task("png-sprite", function () {
return gulp.src(config.svg.spriteFolder + "*.svg")
.pipe(plumber({
errorHandler: function () {
console.log(err);
this.emit("end");
}
}))
.pipe(svg2png())
.pipe(gulp.dest(config.svg.spriteFolder));
});

if (config.svg.pngFallback) {
gulp.start('png-sprite')
} else {
gulp.start('svg-sprite')
}
if (config.svg.pngFallback) {
runSequence("svg-sprite", "png-sprite", done);
} else {
runSequence("svg-sprite", done);
}
};


Expand Down
15 changes: 15 additions & 0 deletions gulp-tasks/develop.js
@@ -0,0 +1,15 @@
module.exports = function (done) {
let gulp = require("gulp"),
runSequence = require("run-sequence").use(gulp);

return runSequence(
"check-deps",
"prepare-assets",
"prepare-config",
"clear-image-cache",
"watch-scss",
"watch-svg",
"watch-images-optimize",
done
);
};
55 changes: 55 additions & 0 deletions gulp-tasks/lint-commit.js
@@ -0,0 +1,55 @@
const gulp = require("gulp");
const eslint = require("gulp-eslint");
const config = require("../gulp.config.js")();
const _ = require("lodash");
const through = require("through2");
const sassLint = require("gulp-sass-lint");
const gulpif = require("gulp-if");
const es = require("event-stream");
const vinyl = require("vinyl-fs");

function replaceStreamWith() {
let pass = through.obj();
return es.duplex(pass, vinyl.src.apply(vinyl.src, arguments));
}

function makeEmptyStream() {
return through.obj((a, b, cb) => cb(null));
}

function lintCode(srcJs, srcSass) {
return gulp.src(srcJs)
.pipe(eslint())
.pipe(eslint.format())
.pipe(eslint.failAfterError())
.pipe(gulpif(!_.isEmpty(srcSass), replaceStreamWith(config.scss.lint), makeEmptyStream()))
.pipe(sassLint())
.pipe(sassLint.format())
.pipe(sassLint.failOnError());
}

function eslintCommit() {
const execSync = require("child_process").execSync;
const stdout = execSync("git diff --cached --name-only").toString()
+ "\n"
+ execSync("git diff --name-only").toString();

const resArray = stdout.split("\n");

const commitJsFiles = resArray
.filter((line) => line.endsWith(".js"))
.filter((line) => {
return _.reduce(config.custom.foldersToLint, (res, curr) => res || line.startsWith(curr), false);
});

const commitScssFiles = _(resArray).filter((line) => line.endsWith(".scss")).value();


if (commitJsFiles.length > 0 || commitScssFiles.length > 0) {
return lintCode(commitJsFiles, commitScssFiles);
}
}

module.exports = function () {
return eslintCommit();
};
12 changes: 12 additions & 0 deletions gulp-tasks/lint.js
@@ -0,0 +1,12 @@
const gulp = require("gulp");
const eslint = require("gulp-eslint");
const config = require("../gulp.config.js")();
const _ = require("lodash");

module.exports = function () {

return gulp.src(_.map(config.custom.foldersToLint, (folder) => `${folder}/**/*.js`))
.pipe(eslint())
.pipe(eslint.format())
.pipe(eslint.failAfterError());
};
13 changes: 13 additions & 0 deletions gulp-tasks/prepare-assets.js
@@ -0,0 +1,13 @@
module.exports = function (done) {
var gulp = require('gulp'),
runSequence = require('run-sequence'),
config = require('../gulp.config.js')();

return runSequence('image-optimization',
'create-svg-sprite',
'scss-linting',
'compile-scss',
done);
};


9 changes: 9 additions & 0 deletions gulp-tasks/prepare-config.js
@@ -0,0 +1,9 @@
module.exports = function () {
const gulp = require("gulp"),
config = require("../gulp.config.js")(),
rename = require("gulp-rename");

return gulp.src(config.environmentConfig.source)
.pipe(rename("env.js"))
.pipe(gulp.dest(config.path.DEST));
};
13 changes: 13 additions & 0 deletions gulp-tasks/production.js
@@ -0,0 +1,13 @@

module.exports = function (done) {
let gulp = require("gulp"),
runSequence = require("run-sequence").use(gulp);

return runSequence(
"check-deps",
"prepare-assets",
"prepare-config",
"clear-image-cache",
done
);
};
9 changes: 5 additions & 4 deletions gulp-tasks/scss-linting.js
@@ -1,12 +1,13 @@
module.exports = function () {
var scsslint = require('gulp-scss-lint'),
var sassLint = require('gulp-sass-lint'),
gulp = require('gulp'),
gulpif = require('gulp-if'),
argv = require('yargs').argv,
config = require('../gulp.config.js')();

return gulp.src(['./scss/**/*.scss', '!./scss/**/*_scsslint_tmp*.scss', '!./scss/vendor/**/*.scss', '!./scss/base/_svg-sprite-map.scss', '!./scss/base/_svg-sprite-template.scss'])
.pipe(gulpif(!argv.nolint, scsslint()));
return gulp.src(config.scss.lint)
.pipe(gulpif(!argv.nolint, sassLint()))
.pipe(sassLint.format())
.pipe(sassLint.failOnError());
};


File renamed without changes.
@@ -1,6 +1,6 @@
module.exports = function () {
var gulp = require('gulp'),
config = require('../../gulp.config.js')();
config = require('../gulp.config.js')();

gulp.watch(config.optimize.images.src, ['image-optimization']);
};
Expand Down
@@ -1,6 +1,6 @@
module.exports = function () {
var gulp = require('gulp'),
config = require('../../gulp.config.js')();
config = require('../gulp.config.js')();
gulp.watch(config.scss.src, ['compile-scss', 'scss-linting']);

};
@@ -1,6 +1,6 @@
module.exports = function () {
var gulp = require('gulp'),
config = require('../../gulp.config.js')();
config = require('../gulp.config.js')();

return gulp.watch(config.svg.sourceFolder + '**/*.svg', function () {
// Create SVG sprite
Expand Down
31 changes: 0 additions & 31 deletions gulp-tasks/watchers/watch-webpack.js

This file was deleted.

18 changes: 0 additions & 18 deletions gulp-tasks/webpack.js

This file was deleted.

0 comments on commit 4b0200e

Please sign in to comment.