var fonts = ()=> { return GULP.src( [ paths.site.src+"/css/fonts/**/*.{otf,ttf}" ,paths.site.src+"/lib/icomoon/fonts/**/*.{eot,svg,ttf,woff}" ,paths.site.src+"/lib/components/bootstrap/fonts/**/*.{eot,svg,ttf,woff}" ,paths.site.src+"/lib/icomoon/fonts/*.{woff,ttf,svg,eot}" ] ) .pipe(DEBUG()) .pipe(GULP.dest("interm/fonts/")) };
gulp.task('sass:dist', function () { return gulp.src(config.sass.src) .pipe(bulkSass()) .pipe(sass()) .pipe(postcss(processors)) .pipe(postcss( [cssnano()] )) .pipe(rename({ extname: ".min.css" })) .pipe( debug() ) .pipe(gulp.dest(config.sass.dest)); });
gulp.task('build', ['copy'], function() { var files = glob.sync('./public/js/main.js') var bun = browserify(files, {basedir: __dirname, debug: !production, transform: reactify}) return bun.bundle() .pipe(source('bundle.js')) .pipe(debug({title: "build: "})) .pipe(gulp.dest('./public/js/compiled')) })
gulp.task('eslint', function () { let opts = { fix: process.argv.includes('--fix'), }; return gulp .src(['**/*.js', '!node_modules/**', '!dist/**']) .pipe(gulpIf(VERBOSE, debug())) .pipe(eslint(opts)) .pipe(eslint.format()) .pipe(eslint.failAfterError()) .pipe(gulpIf((file) => file.eslint && file.eslint.fixed, gulp.dest(process.cwd()))); });
gulp.task('uncss', function() { // content gulp.src('../public/css/main.css') .pipe(uncss({html: ['index.html']})) .pipe(base64({ debug: true })) .pipe(cssshrink()) .pipe(debug({verbose: true})) //.pipe(rev()) .pipe(gulp.dest('../public/uncss/')); });
gulp.task('js_superlative:build', function (callback) { gulp.src(path.src.js_superlative) .pipe(rigger()) .pipe(sourcemaps.init()) .pipe(sourcemaps.write()) .pipe(uglify()) .pipe(preprocess({context: { NODE_ENV: 'production', DEBUG: true }})) .pipe(debug()) .pipe(gulp.dest(path.build.js_superlative)) .pipe(reload({stream: true})); callback(); });
gulp.task('styleguide', () => { return gulp.src(sourceFiles) .pipe(debug({ title: 'styleguide:' })) .pipe(dss({ output: 'index.html', templatePath: config.path.source.styleguide + '/templates' })) .pipe(gulp.dest(config.path.destination.styleguide)) .on('error', reportError); });
function() { return gulp.src([paths.libJs, "!" + paths.libMinJs]) .pipe(debug()) .pipe(sourcemaps.init()) .pipe(ignore.exclude(["**/*.map"])) .pipe(lec({ eolc: 'LF', encoding: 'utf8' }).on("error", gulpUtil.log)) .pipe(uglify().on("error", gulpUtil.log)) .pipe(sourcemaps.write()) .pipe(gulp.dest(function(file) { return file.base; })); });
var lessen = ()=>{ return GULP.src( paths.site.src+"/css/app.less" ) .pipe(LESS()) .pipe(DEBUG()) // .pipe(RENAME({ // basename: 'zzzz' // })) .pipe(GULP.dest("interm/css/")) }
gulp.task('less', function () { console.log('\nCrunching…'); gulp.src('src/themes/m8tro/build.less') .pipe(debug({title: 'lessc:'})) .pipe(less({ plugins: [autoprefix], paths: [ path.join(__dirname, 'less', 'includes') ] })) .pipe(concat('m8tro.css')) .pipe(debug({title: 'copy:'})) .pipe(gulp.dest('dist/css/')) .pipe(concat('m8tro.min.css')) .pipe(debug({title: 'cssmin:'})) .pipe(cssmin()) .pipe(gulp.dest('dist/css/')); gulp.src('src/themes/m8tro/extras/build.less') .pipe(debug({title: 'lessc:'})) .pipe(less({ plugins: [autoprefix], paths: [ path.join(__dirname, 'less', 'includes') ] })) .pipe(concat('m8tro-extras.css')) .pipe(debug({title: 'copy:'})) .pipe(gulp.dest('dist/css/')) .pipe(concat('m8tro-extras.min.css')) .pipe(debug({title: 'cssmin:'})) .pipe(cssmin()) .pipe(gulp.dest('dist/css/')); });
gulp.task('css', function () { console.log('---------- LESS compile'); return gulp.src('./source/less/style.less') .pipe(gulpIf(isDev, sourcemaps.init())) .pipe(debug({title: "LESS:"})) .pipe(less()) .on('error', notify.onError(function (err) { return { title: 'Styles compilation error', message: err.message } })) .pipe(gcmq()) .pipe(debug({title: "group media queries:"})) .pipe(autoprefixer({browsers: ['last 2 version']})) .pipe(debug({title: "autoPrefixer:"})) .pipe(gulpIf (!isDev, csscomb())) .pipe(gulpIf (!isDev, debug({title: "cssComb:"}))) .pipe(gulpIf(!isDev, cleancss())) .pipe(gulpIf(!isDev, debug({title: "cleenCss:"}))) .pipe(rename({suffix: '.min'})) .pipe(gulpIf(isDev, sourcemaps.write())) .pipe(gulp.dest('./build/css/')) .pipe(debug({title: "css:"})); });
module.exports = function() { // Via yargs we will set if we are in distribution mode, // we will change directory, code output and we'll not generate sourcemaps env.sass.outputStyle = argv.dist ? 'compressed' : 'nested'; var destination = argv.dist ? env.folder.dist : env.folder.dev; return gulp.src([ env.folder.src + '/**/*.+(scss|sass)', ]) .pipe(sourcemaps.init()) // The sass options are in ../env.js .pipe(sass(env.sass)) .on("error", notify.onError(function (error) { return { title: "SASS ERROR:", message: error.message, notifier: function (options) { this.emit("end"); } }; })) // via ../env.js we'll prepend our css with a specified class .pipe(gulpif( env.namespaceCSS, cssPrefix({'parentClass': env.namespaceCSS}) )) .pipe( postcss([ autoprefixer({ browsers: env.compatibility, cascade: true }), mqpacker({ sort: true }) ]) ) .pipe(gulpif(!argv.dist, sourcemaps.write('/'))) // We will write only the changed files .pipe(changed(destination + '/', {hasChanged: changed.compareSha1Digest})) .pipe(gulp.dest(destination + '/')) .pipe(debug({title: 'Styles compiled: '})); };
return gulp.task('copy:inline', function () { return gulp.src(libPaths) .pipe(rename(function (file) { file.basename = catberryHelper.setBuildFileName(file); file.dirname = '/'; })) .pipe(gulp.dest(path.join('.tmp', 'desktop'))) .pipe(gulpif(buildOptions.useDebug, debug({ title: 'copy-inline' }))) .pipe(size({ title: 'copy-inline' })); // .pipe( // notifier('Copy catberry components template!') // ); });
gulp.task('styles:build', () => { return gulp.src('frontend/styles/main.sass', {base: 'frontend'}) .pipe(sourcemaps.init()) .pipe(sass()) .pipe(debug({title: 'styles'})) .pipe(autoprefixer({ browsers: ['last 2 versions'], cascade: false })) .pipe(postcss(processors)) .pipe(sourcemaps.write('.')) .pipe(gulp.dest('public')) })
gulp.task('dist-index', function() { return gulp.src(path.app + 'index.html') .pipe(debug({ title: 'file:' })) .pipe(usemin({ html: [htmlmin({ collapseWhitespace: true })] })) .pipe(replace('elements/elements.html', 'elements/elements.vulcanized.html')) .pipe(gulp.dest(path.dist)); });
gulp.task('mathjax:all', function (done) { 'use strict'; var k; var mathJaxFilePaths = loadMetadata().paths; for (k = 0; k < mathJaxFilePaths.length; k += 1) { console.log('Processing MathJax in ' + mathJaxFilePaths[k]); gulp.src(mathJaxFilePaths[k] + '*.html') .pipe(mathjax(mjpageOptions)) .pipe(debug({title: 'Processing MathJax in '})) .pipe(gulp.dest(mathJaxFilePaths[k])); done(); } });
gulp.task('gh-deploy', ['gh-prep'], function () { var options = { branch: 'gh-pages', message: "v" + pack.version } return gulp.src('./dist/**/*') .pipe( debug() ) .pipe( gghp(options) ); });
gulp.task('sass:build', function () { return gulp.src(path.join(paths.sass, '*.scss')) .pipe(debug()) .pipe(sass({ imagePath: paths.build.img, includePaths: paths.bootstrap, outputStyle: 'compressed' })) .pipe(autoprefixer()) .pipe(rename({ suffix: '.min' })) .pipe(header(banner, { pkg: pkg })) .pipe(gulp.dest(path.join('./styleguide/build/', pkg.version))); });
gulp.task('mergeScripts', () => { return gulp.src(jsFiles) .pipe(debug()) .pipe(gulpExpect(jsFiles)) .pipe(sourcemap.init()) .pipe(concat('scripts.js')) //.pipe(uglify()) .pipe(sourcemap.write('.')) //.pipe(gutil.beep()) .pipe(gulp.dest('dist/js')); });
gulp.task('jade', function() { gulp.src(paths.source+'/jade/index.jade') .pipe(jade({ pretty: true })) .pipe(debug( { title: 'jaded :' } )) .pipe(gulp.dest(paths.root)) .pipe( livereload( server )); });
gulp.task('clean', function clean () { if (opts.transpile) { return gulp .src(opts.transpileOut, { read: false, allowEmpty: true, }) .pipe(gulpIf(isVerbose(), debug())) .pipe(vinylPaths(del)); } else { return B.resolve(); } });
gulp.task('copy', [], (done) => { gulp.src(config.assets.copy) .pipe(rename((path) => { if (/(glyphicons|fontawesome)/i.test(path.basename)) { path.dirname = 'fonts'; } return path; })) .pipe(debug({ title: '>'})) .pipe(gulp.dest(config.output)) .on('end', done) ; });
return gulp.task('html:build', function () { return gulp.src(libPaths) .pipe(rename(function (file) { file.basename = catberryHelper.setBuildFileName(file); file.dirname = '/'; })) .pipe(gulp.dest('.dev')) .pipe(gulpif(buildOptions.useDebug, debug({ title: 'html-build' }))) .pipe(size({ title: 'html-build' })); // .pipe( // notifier('Copy catberry components template!') // ); });
gulp.task('views', ['scaffold'], function() { return gulp.src(path.join(env.SOURCE_VIEWS_DIR, '**/*.html')) .pipe(debug({ title: 'building views:' })) .pipe(minifyHTML({ empty: true })) .pipe(gulp.dest(env.VIEWS_DIR)) .pipe(reload({ stream: true })); });
gulp.task('less', function () { console.log('---------- Компиляция LESS'); return gulp.src(dirs.source + '/less/style.less') .pipe(gulpIf(isDev, sourcemaps.init())) .pipe(debug({title: "LESS:"})) .pipe(less()) .on('error', notify.onError(function(err){ return { title: 'Styles compilation error', message: err.message } })) .pipe(postcss([ autoprefixer({browsers: ['last 2 version']}), mqpacker ])) .pipe(gulpIf(!isDev, cleanss())) .pipe(rename('style.min.css')) .pipe(debug({title: "RENAME:"})) .pipe(gulpIf(isDev, sourcemaps.write())) .pipe(gulp.dest(dirs.build + '/css')); });
gulp.task('deploy', ['copyfiles', 'cleandist'], function () { return gulp.src('./window.html') .pipe(useref({'noconcat':false})) .pipe(gulpif('*.js', closureCompiler({ compilation_level: 'WHITESPACE_ONLY', language_in: 'ECMASCRIPT6_STRICT', language_out: 'ECMASCRIPT5_STRICT', js_output_file: 'scripts/combined.js' }))) .pipe(gulpif('*.css', minifyCss())) .pipe(debug({title: 'x:'})) .pipe(gulp.dest('dist')); });
return function() { var sassConfig = { includePaths: [ paths.client.bowerDir + '/bootstrap-sass-official/assets/stylesheets', paths.client.bowerDir + '/fontawesome/scss' ], outFile: paths.server.cssDir + '/app.css' }; return gulp.src(paths.client.allSassSrc) .pipe(debug({title: 'sass:'})) .pipe(sass(sassConfig).on('error', sass.logError)) .pipe(gulp.dest(paths.server.cssDir)); }
gulp.task('replaceVersion:js', function(){ return gulp.src('./src/global.js') .pipe(debug()) .pipe(replace({ patterns: [ { match: 'version', replacement: version } ] })) .pipe(gulp.dest(srcpath + 'script/common')) });
function() { return ts.createProject("tsconfig.json", { sortOutput: true }) .src([paths.ts]) .pipe(debug()) .pipe(sourcemaps.init()) .pipe(ts({ declarations: false })) .pipe(uglify().on("error", gulpUtil.log)) .pipe(sourcemaps.write()) .pipe(gulp.dest(function(file) { return paths.jsDest; })); });
gulp.task('dev-img', function() { return gulp.src(srcPathsImg) .pipe(flatten()) .pipe(imagemin({ progressive: false, svgoPlugins: [ {removeViewBox: false}, {cleanupIDs: false} ], use: [pngquant()] })) .pipe(debug()) .pipe(gulp.dest(destPathImg)); });