Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var gulp = require("gulp"),
- uglify = require("gulp-uglify"),
- sass = require("gulp-sass"),
- concat = require("gulp-concat"),
- del = require("del"),
- rename = require("gulp-rename"),
- runSequence = require("run-sequence"),
- sourcemaps = require('gulp-sourcemaps'),
- postcss = require("gulp-postcss"),
- autoprefixer = require("autoprefixer"),
- mqpacker = require('css-mqpacker'),
- csswring = require('csswring'),
- cssSimple = require('postcss-csssimple'),
- jade = require('gulp-jade');
- require("es6-promise").polyfill();
- function onError(error) {
- process.stderr.write(error + '\n');
- }
- const paths = (function () {
- const webrootBase = "wwwroot";
- const devrootBase = "client";
- return {
- webroot: {
- base: webrootBase,
- vendor: webrootBase + "/vendor",
- app: webrootBase + "/app"
- },
- devroot: {
- base: devrootBase,
- app: devrootBase + "/app",
- static: devrootBase + "/**/*.{html,css,js,jpg,png,bmp,svg,eot,svg,ttf,woff,woff2,otf}",
- ts: devrootBase + "/**/*.ts",
- js: devrootBase + "/**/*.js",
- appJs: devrootBase + "/app/**/*.js",
- scss: devrootBase + "/**/*.scss",
- jade: [devrootBase + "/**/*.jade"],
- vendor: devrootBase + "/vendor"
- },
- node: "node_modules"
- };
- })();
- gulp.task("watch-dev", function (cb) {
- gulp.task('jade', function () {
- gulp.src(paths.devroot.jade)
- .pipe(jade({pretty: true}).on('error', onError))
- .pipe(gulp.dest(paths.webroot.base))
- });
- gulp.task("static", function () {
- gulp.src(paths.devroot.static)
- .pipe(gulp.dest(paths.webroot.base));
- });
- gulp.task('styles', function () {
- var processors = [
- autoprefixer({browsers: ['last 5 versions']}),
- mqpacker,
- cssSimple,
- csswring({preserveHacks: true})
- ];
- return gulp
- .src(paths.devroot.scss)
- .pipe(sourcemaps.init())
- .pipe(sass().on('error', sass.logError))
- .pipe(postcss(processors).on('error', onError))
- .pipe(sourcemaps.write("./"))
- .pipe(gulp.dest(paths.webroot.base));
- });
- gulp.task("js-min", function () {
- return gulp
- .src(paths.devroot.appJs)
- .pipe(sourcemaps.init())
- .pipe(uglify())
- .pipe(concat('scripts.min.js'))
- .pipe(sourcemaps.write("./"))
- .pipe(gulp.dest(paths.webroot.base))
- });
- gulp.watch(paths.devroot.jade, ["jade"]);
- gulp.watch(paths.devroot.scss, ["styles"]);
- gulp.watch(paths.devroot.static, ["static"]);
- gulp.watch(paths.devroot.static, ["js-min"]);
- return runSequence(
- "restore-packages",
- "styles",
- "jade",
- "static",
- "js-min",
- cb);
- });
- gulp.task("restore-packages", function (cb) {
- gulp.task("bootstrap", function () {
- return gulp.src(paths.node + "/bootstrap/dist/**/*")
- .pipe(gulp.dest(paths.devroot.vendor + "/bootstrap"))
- });
- gulp.task("jquery", function () {
- return gulp.src(paths.node + "/jquery/dist/**/*")
- .pipe(gulp.dest(paths.devroot.vendor + "/jquery"))
- });
- gulp.task("font-awesome", function () {
- gulp.src(paths.node + "/font-awesome/css/font-awesome.min.css")
- .pipe(gulp.dest(paths.devroot.vendor + "/font-awesome/css/"));
- return gulp.src(paths.node + "/font-awesome/fonts/*")
- .pipe(gulp.dest(paths.devroot.vendor + "/font-awesome/fonts/"));
- });
- gulp.task("lightbox2", function () {
- gulp.src(paths.node + "/lightbox2/dist/css/lightbox.min.css")
- .pipe(gulp.dest(paths.devroot.vendor + "/lightbox2/css/"));
- gulp.src(paths.node + "/lightbox2/dist/images/*")
- .pipe(gulp.dest(paths.devroot.vendor + "/lightbox2/images/"));
- return gulp.src(paths.node + "/lightbox2/dist/js/lightbox.min.js")
- .pipe(gulp.dest(paths.devroot.vendor + "/lightbox2/js/"));
- });
- gulp.task("slideout", function () {
- gulp.src(paths.node + "/slideout/dist/slideout.min.js")
- .pipe(gulp.dest(paths.devroot.vendor + "/slideout/js/"));
- return gulp.src(paths.node + "/slideout/index.css")
- .pipe(gulp.dest(paths.devroot.vendor + "/slideout/css/"));
- });
- return runSequence(
- "bootstrap",
- "jquery",
- "font-awesome",
- "lightbox2",
- "slideout",
- cb);
- });
Add Comment
Please, Sign In to add comment