Skip to content

Instantly share code, notes, and snippets.

@5n00p4eg
Last active March 13, 2018 12:15
Show Gist options
  • Save 5n00p4eg/a23996b4766143ef9e43d30c5d054948 to your computer and use it in GitHub Desktop.
Save 5n00p4eg/a23996b4766143ef9e43d30c5d054948 to your computer and use it in GitHub Desktop.
Gulp setup
{
"root" : true,
"extends": "eslint:recommended",
"globals": {
"Drupal": true,
"drupalSettings": true,
"drupalTranslations": true,
"domready": true,
"jQuery": true,
"_": true,
"matchMedia": true,
"Backbone": true,
"Modernizr": true,
"CKEDITOR": true
}
}
{
"plugins": [
"stylelint-scss"
],
"extends": "stylelint-config-standard",
"rules": {
"at-rule-no-unknown": null,
"scss/at-rule-no-unknown": true,
"number-leading-zero": null,
"selector-list-comma-newline-after": null
}
}
const gulp = require('gulp')
const browserify = require('browserify')
const environments = require('gulp-environments');
const babelify = require('babelify');
// const rename = require('gulp-rename')
const sourcemaps = require('gulp-sourcemaps');
const sass = require('gulp-sass')
// const eslint = require('gulp-eslint')
// const eslintify = require('eslintify')
const gulpStylelint = require('gulp-stylelint')
const cleanCSS = require('gulp-clean-css')
const fontAwesome = require('node-font-awesome')
const autoprefixer = require('gulp-autoprefixer')
// const source = require('vinyl-source-stream')
const buffer = require('vinyl-buffer')
// const livereload = require('gulp-livereload')
// const plumber = require('gulp-plumber')
// const plumberNotifier = require('gulp-plumber-notifier')
const uglify = require('gulp-uglify')
const imagemin = require('gulp-imagemin')
const tap = require('gulp-tap')
// const exec = require('gulp-exec')
const gutil = require('gulp-util')
const merge = require('merge-stream')
const clean = require('gulp-clean')
var development = environments.development
var production = environments.production
var SassPath = [
'./scss/**/*.+(scss|sass)'
]
gulp.task('scss', function () {
gutil.log('Compiling scss on ' + environments.current().$name + ' env.')
return gulp.src(SassPath)
.pipe(development(sourcemaps.init()))
.pipe(gulpStylelint({
failAfterError: production(),
reporters: [
{formatter: 'string', console: true}
]
}))
.pipe(sass(
{
includePaths: [
fontAwesome.scssPath
],
style: development ? 'expanded' : 'compressed'
}
).on('error', sass.logError))
.pipe(autoprefixer({
browsers: ['last 2 versions'],
cascade: false
}))
.pipe(development(sourcemaps.write()))
.pipe(production(cleanCSS()))
.pipe(gulp.dest('./assets/css'))
})
gulp.task('scripts', function () {
return gulp.src('./js/**/*.js', {read: false})
.pipe(tap(function (file) {
gutil.log('bundling ' + file.path)
var b = browserify(file.path, {})
.transform('browserify-shim')
.transform(babelify, {
'presets': ['es2015'],
sourceMaps: development
})
file.contents = b.bundle()
}))
.pipe(buffer())
.pipe(development(sourcemaps.init({loadMaps: true})))
.pipe(production(uglify()))
.pipe(development(sourcemaps.write()))
.pipe(gulp.dest('./assets/js/'))
})
gulp.task('fonts', function () {
return merge(
// gulp.src(fontAwesome.fonts).pipe(gulp.dest('./assets/fonts/FontAwesome')),
gulp.src('./fonts/Lato2OFL/**/*.+(ttf|woff|eot|svg)').pipe(gulp.dest('./assets/fonts/Lato'))
)
})
gulp.task('images', function () {
gulp.src('node_modules/slick-carousel/slick/ajax-loader.gif')
.pipe(gulp.dest('./web/assets/images/slick'))
gulp.src('./images/**/*')
.pipe(imagemin())
.pipe(gulp.dest('./assets/images'))
})
gulp.task('watch', ['scss', 'scripts', 'fonts', 'images', 'libs'], function () {
gulp.watch(SassPath, ['scss']);
gulp.watch('./js/**/*.js', ['scripts']);
gulp.watch('./images/**/*', ['images']);
gulp.watch('package.json', ['libs']);
});
gulp.task('eslint', function () {
return (gulp.src('js/index.js'))
});
gulp.task('clean', function () {
return gulp.src('./assets', {read: false})
.pipe(clean())
});
gulp.task('libs', function () {
// return merge(
// gulp.src('node_modules/superfish/dist/**/*')
// .pipe(gulp.dest('./assets/libs/superfish')),
// gulp.src('node_modules/select2/dist/**/*')
// .pipe(gulp.dest('./assets/libs/select2'))
// );
});
gulp.task('set-prod', production.task)
gulp.task('build', ['set-prod', 'scss', 'scripts', 'fonts', 'images', 'libs'])
gulp.task('default', ['watch'])
{
"name": "GreenLeaves",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "clique.digital agency",
"license": "ISC",
"browserify-shim": {},
"devDependencies": {
"babel-preset-es2015": "^6.24.1",
"babelify": "^7.3.0",
"browserify": "^14.4.0",
"browserify-shim": "^3.8.14",
"eslint": "^4.15.0",
"eslint-config-standard": "^10.2.1",
"eslint-plugin-import": "^2.8.0",
"eslint-plugin-node": "^5.2.1",
"eslint-plugin-promise": "^3.6.0",
"eslint-plugin-standard": "^3.0.1",
"gulp": "^3.9.1",
"gulp-autoprefixer": "^4.0.0",
"gulp-clean": "^0.3.2",
"gulp-clean-css": "^3.7.0",
"gulp-environments": "^0.1.2",
"gulp-exec": "^2.1.3",
"gulp-imagemin": "^3.3.0",
"gulp-livereload"`: "^3.8.1",
"gulp-plumber": "^1.1.0",
"gulp-plumber-notifier": "0.0.3",
"gulp-pug": "^3.3.0",
"gulp-rename": "^1.2.2",
"gulp-sass": "^3.1.0",
"gulp-sourcemaps": "^2.6.1",
"gulp-stylelint": "^4.0.0",
"gulp-tap": "^1.0.1",
"gulp-uglify": "^3.0.0",
"stylelint": "^8.2.0",
"stylelint-config-standard": "^17.0.0",
"stylelint-scss": "^2.1.0",
"vinyl-buffer": "^1.0.0",
"vinyl-source-stream": "^1.1.0"
},
"dependencies": {
"eslint-config-standart": "^0.2.0",
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment