Exemplo n.º 1
0
gulp.task('scss', function () {
    return gulp.src('frontend/scss/application.scss')
        .pipe(plumber({
            errorHandler: notify('scss error')
        }))
        .pipe(sass({
            cacheLocation: 'tmp/sass',
            onError: function (errorMessage) {
                console.log(errorMessage);
                // return false;
             }
        }))
        .pipe(cssPrefix())
        .pipe(cssMinify()) // maybe: .pipe(gulpif(!devMode, cssMinify()))
        .pipe(concat('application.css'))
        .pipe(size({ title: 'application.css' }))
        .pipe(rev())
        .pipe(gulp.dest('public/css'))
        .pipe(rev.manifest('config/assets.json', {
            base: 'config',
            merge: true
        }))
        .pipe(revDel({
            dest: 'public/css',
            oldManifest: 'config/assets.json'
        }))
        .pipe(gulp.dest('config'));
});
Exemplo n.º 2
0
gulp.task('optimize', ['inject'], function (done) {
    var cssFilter = $.filter('**/*.css', {
        restore: true
    });
    var jsAppFilter = $.filter('**/app.js', {
        restore: true
    });
    var jsLibFilter = $.filter('**/lib.js', {
        restore: true
    });

    return gulp
        .src(config.paths.index)
        .pipe($.plumber())
        .pipe($.useref({
            searchPath: './'
        }))
        .pipe(cssFilter)
        .pipe($.csso())
        .pipe(cssFilter.restore)
        .pipe(jsLibFilter)
        .pipe($.uglify())
        .pipe(jsLibFilter.restore)
        .pipe(jsAppFilter)
        .pipe($.uglify())
        .pipe(jsAppFilter.restore)
        .pipe($.rev())
        .pipe($.revReplace())
        .pipe(gulp.dest(config.paths.build))
        .pipe($.rev.manifest())
        .pipe(revDel({
            dest: config.paths.build
        }))
        .pipe(gulp.dest(config.paths.build));
});
Exemplo n.º 3
0
gulp.task('js:compile', function() {
    var bundler = browserify({
        entries: 'frontend/js/app.js',
        debug: true
    });
    bundler.transform(babelify, {presets: ["es2015"]});
    bundler.bundle()
        .on('error', function(err) {
            // this is plumber like error reporting
            console.log('ERROR OCCURED ON js:compile'.red);
            console.error(err);
            notifier.notify({
                title: 'build failed',
                message: err
            });
        })
        .pipe(source('app.js'))
        .pipe(buffer())
        .pipe(sourcemaps.init())
        .pipe(uglify()) // Use any gulp plugins you want now
        .pipe(size({ title: 'app.js' }))
        .pipe(rev())
        .pipe(sourcemaps.write('./maps'))
        .pipe(gulp.dest('public/js'))
        .pipe(rev.manifest('config/assets.json', {
            base: 'config',
            merge: true
        }))
        .pipe(revDel({
            dest: 'public/js',
            oldManifest: 'config/assets.json'
        }))
        .pipe(gulp.dest('config'));
    // delete the old manifest
});
Exemplo n.º 4
0
gulp.task('js:copy', ['js:copy:lint'], function() {
    // possible improvements:
    // compare different langs for key mismatch warn them in build process!!
    // this should be done on server when it gets huge
    var lang = {},
        dist = './tmp/js/copy.js';
    fs.readdirSync('./copy').filter(function(fileName) {
        return fileName.slice(-5) === '.json'; // return only .json
    }).forEach(function(fileName) {
        var content = fs.readFileSync('./copy/' + fileName, {encoding: 'utf8'});
        _.extend(lang, JSON.parse(content)); //add the file to lang js object
    });

    fs.outputFileSync(dist, "window.lang = " + util.inspect(lang, {depth: null}) + ";");
    return gulp.src(dist)
            .pipe(size({ title: 'copy.js' }))
            .pipe(rev())
            .pipe(gulp.dest('public/js'))
            .pipe(rev.manifest('config/assets.json', {
                base: 'config',
                merge: true
            }))
            .pipe(revDel({
                dest: 'public/js',
                oldManifest: 'config/assets.json'
            }))
            .pipe(gulp.dest('config'));
});
Exemplo n.º 5
0
gulp.task('revision', ['styles','scripts', 'images', 'svg'], function() {
    return gulp.src(['staging/css/*.css', 'staging/js/**/*.js', 'staging/img/*.*', 'staging/svg/*.svg'], {base: path.join(process.cwd(), 'staging')})
        .pipe(rev())
        .pipe(gulp.dest('hugo/static'))
        .pipe(rev.manifest())
        .pipe(del({dest: 'hugo/static'}))       
        .pipe(gulp.dest('hugo/static'));
});
Exemplo n.º 6
0
gulp.task('cb', () => {
    return gulp.src(cfg.paths.dist + 'styles/*.min.css')
        .pipe($.rev())
        .pipe(gulp.dest(cfg.paths.dist + 'styles'))
        .pipe($.rev.manifest())
        .pipe(revDel({dest: cfg.paths.dist + 'styles'}))
        .pipe(gulp.dest(cfg.paths.dist + 'styles'))
}
Exemplo n.º 7
0
function delRev(dest, manifestName) {
  // in production do not delete old revisions
  if (!__DEV__) {
    return gutil.noop();
  }
  return revDel({
    oldManifest: path.join(paths.manifest, manifestName),
    dest: dest
  });
}
gulp.task('scripts', function() {
  return gulp.src('src/scripts/main.js')
    .pipe(webpack(webpackConfig))
    .pipe(rev())
    .pipe(gulp.dest('dist/scripts')) // 生成压缩后的文件
    .pipe(rev.manifest('js-mainfest.json'))
    .pipe(revDel({ dest: './dist/scripts' }))
    .pipe(gulp.dest('dist/scripts')) // 输出rev对应文件
    .pipe(notify({ message: '脚本完成' }));
});
gulp.task('styles', function() {
  return gulp.src('src/styles/index.scss') // 转换为数据流
    .pipe(sourcemaps.init()) // 生成sourcemaps
    .pipe(sass({ outputStyle: 'compressed' }).on('error', sass.logError)) // 编译sass,压缩
    .pipe(autoprefixer({ browsers: ['last 4 versions'], cascade: false })) // 生成前缀
    .pipe(sourcemaps.write('.')) // 输出sourcemaps
    .pipe(rev())
    .pipe(gulp.dest('dist/styles')) // 输出css和map文件
    .pipe(rev.manifest('css-manifest.json'))
    .pipe(revDel({ dest: 'dist/styles' }))
    .pipe(gulp.dest('dist/styles')) // 输出rev对应文件,必须和revDel的目录一致才可以。
    .pipe(notify({ message: '样式完成' })); // 提示
});
Exemplo n.º 10
0
gulp.task('html', function () {
    return gulp.src([HTML_SRCPATH, '/**/*.{html,shtml}'].join(''))
        .pipe(rev())
        .pipe(revFormat({
            prefix: '-',
            suffix: '',
            lastExt: true
        }))
        .pipe(gulp.dest(HTML_DISTPATH))
        .pipe(rev.manifest('rev-manifest-html.json'))
        .pipe(filename({bundleName: BUILD_CONFIG.bundleName + '.html'}))
        .pipe(revDel({dest: HTML_DISTPATH}))
        .pipe(gulp.dest(BASEPATH_V + '/rev/pages'))
});
Exemplo n.º 11
0
gulp.task('reset', function () {

    return gulp.src([DISTPATH + '/main.js'])
        .pipe(uglify({
            mangle: {except: ['define', 'require', 'module', 'exports']},
            compress: false,
            preserveComments: 'some'
        }))
        .pipe(rev())
        .pipe(gulp.dest(DISTPATH))
        .pipe(rev.manifest("rev-manifest-scripts-main.json", {merge: true, cwd: ''}))
        .pipe(revDel({dest: DISTPATH}))
        .pipe(clean())
        .pipe(gulp.dest(BASEPATH_V + '/rev/js'))
});
Exemplo n.º 12
0
gulp.task('js:plugins', function() {
    return gulp.src(JS_PLUGINS)
        .pipe(concat('plugins.js'))
        .pipe(size({ title: 'plugins.js' }))
        .pipe(rev())
        .pipe(gulp.dest('public/js'))
        .pipe(rev.manifest('config/assets.json', {
            base: 'config',
            merge: true
        }))
        .pipe(revDel({
            dest: 'public/js',
            oldManifest: 'config/assets.json'
        }))
        .pipe(gulp.dest('config'));
});
Exemplo n.º 13
0
gulp.task('js', function () {
    return gulp.src([SRCPATH, '/**/*.js'].join(''))
        .pipe(uglify({
            mangle: {except: ['define', 'require', 'module', 'exports']},
            compress: false,
            preserveComments: "some"
        }))
        .pipe(rev())
        .pipe(revFormat({
            prefix: '-',
            suffix: '',
            lastExt: true
        }))
        .pipe(gulp.dest(DISTPATH))
        .pipe(rev.manifest('rev-manifest-scripts.json'))
        .pipe(filename({bundleName: BUILD_CONFIG.bundleName + '.scripts'}))
        .pipe(revDel({dest: DISTPATH}))
        .pipe(gulp.dest(BASEPATH_V + '/rev/js'))
});
Exemplo n.º 14
0
gulp.task('js:riot:compile', ['js:components', 'js:pages'], function() {
    return gulp.src(['tmp/js/components.js', 'tmp/js/pages.js'])
        .pipe(plumber({
            errorHandler: notify('js:riot:compile js error')
        }))
        .pipe(uglify())
        .pipe(concat('views.js'))
        .pipe(size({ title: 'views.js' }))
        .pipe(rev())
        .pipe(gulp.dest('public/js'))
        .pipe(rev.manifest('config/assets.json', {
            base: 'config',
            merge: true
        }))
        .pipe(revDel({
            dest: 'public/js',
            oldManifest: 'config/assets.json'
        }))
        .pipe(gulp.dest('config'));
});
Exemplo n.º 15
0
gulp.task('rev', ['copy', 'images', 'styles', 'scripts'], function () {

  var src = [
    tmpDir + stylesDir + mainFile + '.min.css',
    tmpDir + scriptsDir + mainFile + '.min.js',
    tmpDir + imagesFiles
  ];

  return gulp
    .src(src, { base: tmpDir })
    .pipe(rev())
    .pipe(gulp.dest(buildDir))
    .pipe(rev.manifest())
    .pipe(revDel({ dest: buildDir, oldManifest: 'rev-manifest.json' }))
    .pipe(gulp.dest(process.cwd()))
    .pipe(notify({
      onLast: true,
      message: 'REV task SUCCESS!',
      icon: null
    }));
});
Exemplo n.º 16
0
gulp.task('scss:main', ['clean:sourcemaps:scss'], function() {
  return gulp.src(paths.src.scss.main, {base: paths.base.src})
      .pipe($.sourcemaps.init())
      .pipe($.sass({
        outputStyle: options.production ? 'compressed' : 'nested'
      }))
      .on('error', utils.errorCallback('SCSS'))
      .pipe($.rename(function (path) {
        path.dirname = path.dirname.replace(/(\/|^)scss(\/|$)/, '/css/').replace(/(\/|^)main(\/|$)/, '/');
        path.extname = '.min.css';
      }))
      .pipe($.rev())
      .pipe($.if(!options.production, $.sourcemaps.write('.', {
        sourceRoot: function(file) {
          return file.path.replace(/^resources/, '').substr(1).replace(/[^\/]+/ig, '..') + '/../resources/';
        }
      })))
      .pipe(gulp.dest(paths.base.dest.main))
      .pipe($.size({title: 'main css'}))
      .pipe($.rev.manifest({ merge: true, path: 'storage/app/asset-manifest.json', base: 'storage/app' }))
      .pipe(revDel({ dest: paths.base.dest.main, oldManifest: 'storage/app/asset-manifest.json' }))
      .pipe(gulp.dest('storage/app'));
});