Пример #1
0
gulp.task('sass', function() {
  var imagesManifest = env === PRODUCTION && USE_FINGERPRINTING ? (JSON.parse(fs.readFileSync("./"+BUILD+'/rev/images/rev-manifest.json', "utf8"))) : {};
  var config = { errLogToConsole: true };

  if (env === DEVELOPMENT) {
    config.sourceComments = 'map';
  } else if (env === PRODUCTION) {
    config.outputStyle = 'compressed';
  }
  return gulp.src(SRC+'/sass/main.scss')
    .pipe(duration('sass'))
    .pipe(plumber({
      errorHandler: handleError
    }))
    .pipe(sass(config).on('error', gutil.log))
    //.pipe(gulpif(env === PRODUCTION, prefix("last 2 versions", "> 1%", "ie 8", "ie 7", { cascade: true })))
    .pipe(gulpif(env === PRODUCTION, uncss({
      html: glob.sync(getOutputDir()+'/*.html'),
      ignore: [
        'input[type="radio"]',
        'input[type="checkbox"]',
        /\[?\.ng[\-\.\w\d]+/,/::?-[\w\d]+\]?/i,
        /(.responsive|.datepicker|.loader|.spinner|.bounce|.error-message|.select2|.form-container).+/i,
        /(.radio|.checkbox|.has-feedback|.carousel|.btn|.popover|.form-control|.input-group|.breadcrumb).+/i
      ]
    })))
    //.pipe(gulpif(env === PRODUCTION, csso()))
    .pipe(gulpif(env === PRODUCTION, minifyCSS()))
    .pipe(gulpif(env === PRODUCTION, size()))
    .pipe(gulpif(env === PRODUCTION && USE_FINGERPRINTING, fingerprint(imagesManifest, { base:'../images/', prefix: '../images/' })))
    .pipe(gulpif(env === PRODUCTION && USE_FINGERPRINTING, rev()))
    .pipe(gulp.dest(getOutputDir()+ASSETS+'/css'))
    .pipe(gulpif(env === PRODUCTION && USE_FINGERPRINTING, rev.manifest()))
    .pipe(gulpif(env === PRODUCTION && USE_FINGERPRINTING, gulp.dest(BUILD+'/rev/css')))
});
Пример #2
0
gulp.task('stylesDist', ['imagesDist'], function () {
  var manifest = require('../../dist/image-manifest');
  // See https://github.com/andrew/node-sass for more options
  return gulp.src('app/scss/app.scss')
    .pipe(sass({
      includePaths: [config.bower + '/foundation/scss']
    }))
    // .pipe(prefix('last 1 version'))  // add vendor prefixes if necessary
    .pipe(fingerprint(manifest, {verbose: true}))
    .pipe(csso())  // minify css
    .pipe(gulp.dest(config.dist + '/styles'))
    .pipe(size());
});
Пример #3
0
gulp.task('jade', function() {
  var config = {
    "production": env === PRODUCTION,
    "pretty": env === DEVELOPMENT,
    "locals": { "production": env === PRODUCTION }
  };

  var jsManifest      = env === PRODUCTION && USE_FINGERPRINTING ? (JSON.parse(fs.readFileSync("./"+BUILD+'/rev/js/rev-manifest.json', "utf8"))) : {},
      //vendorManifest  = env === PRODUCTION ? (JSON.parse(fs.readFileSync("./"+BUILD+'/rev/js-vendor/rev-manifest.json', "utf8"))) : {},
      cssManifest     = env === PRODUCTION && USE_FINGERPRINTING? (JSON.parse(fs.readFileSync("./"+BUILD+'/rev/css/rev-manifest.json', "utf8"))) : {},
      imagesManifest  = env === PRODUCTION && USE_FINGERPRINTING ? (JSON.parse(fs.readFileSync("./"+BUILD+'/rev/images/rev-manifest.json', "utf8"))) : {};

  gulp.src(SRC+"/templates/"+jadeFiles+".jade")
    .pipe(duration('jade'))
    .pipe(jade(config).on('error', gutil.log))
    .pipe(gulpif(env === PRODUCTION && USE_FINGERPRINTING, fingerprint(jsManifest, { base:'assets/js/', prefix: 'assets/js/' })))
    //.pipe(gulpif(env === PRODUCTION && USE_FINGERPRINTING, fingerprint(vendorManifest, { base:'assets/js/', prefix: 'assets/js/' })))
    .pipe(gulpif(env === PRODUCTION && USE_FINGERPRINTING, fingerprint(cssManifest, { base:'assets/css/', prefix: 'assets/css/' })))
    .pipe(gulpif(env === PRODUCTION && USE_FINGERPRINTING, fingerprint(imagesManifest, { base:'assets/images/', prefix: 'assets/images/' })))
    .pipe(gulpif(env === PRODUCTION, size()))
    .pipe(gulp.dest(getOutputDir())).on('end', function() {
      if (watching) livereload.changed('');
    });
});
Пример #4
0
gulp.task("scss-to-css", function() {
  var fingerprintManifest = "./vendor/rev-manifest.json",
      fingerprintOptions  = { base: "/fonts/", prefix: "/assets/", mode: "replace"};

  return gulp.src([
    "./node_modules/pg-styleguide-assets/components/**/*.scss",
    "./node_modules/pg-styleguide-assets/stylesheets/**/*.scss",
    "!./node_modules/pg-styleguide-assets/stylesheets/application/base.scss"
  ])
    .pipe(sass({
      errLogToConsole: true,
      includePaths: [
        "./node_modules/pg-styleguide-assets/stylesheets"
      ]
    }))
    .pipe(fingerprint(fingerprintManifest, fingerprintOptions))
    .pipe(gulp.dest("./vendor/.compiled/"));
});
    new Elixir.Task('fingerprint', function() {
        this.log(paths.src, paths.output);

        var onError = function (e) {
            new Elixir.Notification().error(e, 'Fingerprinting Failed!');
            this.emit('end');
        };

        var manifest = require(__dirname + '/../../' + manifestFile);

        return gulp.src(paths.src.path)
            .on('error', onError)
            .pipe(fingerprint(manifest, {
                base: options.base || '/',
                prefix: options.prefix || '/build/'
            }))
            .pipe(gulp.dest(paths.output.baseDir))
            .pipe(new Elixir.Notification('Fingerprinting Compiled'));
    })