Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// <binding ProjectOpened='watch' />
- // ReSharper disable VariableCanBeMadeLet
- var gulp = require("gulp"),
- concat = require("gulp-concat"),
- del = require("del"),
- rename = require("gulp-rename"),
- runSequence = require("run-sequence"),
- sourcemaps = require("gulp-sourcemaps"),
- uglify = require("gulp-uglify"),
- rjs = require("gulp-requirejs-optimize"),
- watch = require("gulp-watch"),
- install = require("gulp-install"),
- ts = require("gulp-typescript"),
- plumber = require("gulp-plumber"),
- jade = require("gulp-jade"),
- notify = require("gulp-notify");
- const paths = (function() {
- const webrootBase = "wwwroot";
- const devrootBase = "App_Scripts";
- const paths = {
- webroot: {
- base: webrootBase,
- vendor: webrootBase + "/vendor",
- app: webrootBase + "/app"
- },
- bundles: {},
- devroot: {
- base: devrootBase,
- app: devrootBase + "/app",
- static: devrootBase + "/**/*.{html,css,js,jpg,png,bmp,svg,eot,svg,ttf,woff,woff2,otf,gif,ico,pdf}",
- ts: [
- devrootBase + "/**/*.ts",
- "typings/browser.d.ts",
- "typings/browser/**/*.d.ts",
- "Scripts/typings/**/*.d.ts"
- ],
- js: devrootBase + "/**/*.js",
- scss: devrootBase + "/**/*.scss",
- jade: [devrootBase + "/**/*.jade"],
- vendor: devrootBase + "/vendor"
- },
- npm: "node_modules"
- };
- const bundles = {
- "/knockout/knockout.bundle.js": "/knockout/*.js"
- };
- for (var key in bundles) {
- if (bundles.hasOwnProperty(key)) {
- paths.bundles[key] = devrootBase + bundles[key];
- }
- }
- return paths;
- })();
- gulp.task("restore-packages", function(cb) {
- gulp.src(["package.json"]).pipe(install());
- const lib = {
- "/knockout": "/knockout/build/output/knockout-latest.js",
- "/accounting": "/accounting/accounting.js",
- "/jquery": "/jquery/dist/jquery.js",
- "/jquery-migrate": "/jquery-migrate/dist/jquery-migrate",
- "/jquery-ui": "/jquery-ui/jquery-ui.js",
- "/knockout-mapping": "/knockout-mapping/dist/knockout-mapping.js",
- "/knockstrap": "/knockstrap/build/knockstrap.js",
- "/requirejs": "/requirejs/require.js",
- "/requirejs-text": "/requirejs-text/text.js"
- };
- for (var p in lib) {
- if (lib.hasOwnProperty(p)) {
- gulp.src(paths.npm + lib[p]).pipe(gulp.dest(paths.webroot.vendor + p));
- }
- }
- cb();
- });
- gulp.task("minify", function() {
- return gulp
- .src(paths.webroot.vendor + "/**/*.js")
- .pipe(sourcemaps.init())
- .pipe(uglify())
- .pipe(sourcemaps.write("./"))
- .pipe(gulp.dest(paths.webroot.vendor));
- });
- gulp.task("bundle", function() {
- for (var key in paths.bundles) {
- if (paths.bundles.hasOwnProperty(key)) {
- gulp
- .src(paths.bundles[key])
- .pipe(sourcemaps.init())
- .pipe(uglify())
- .pipe(concat(key))
- .pipe(sourcemaps.write("./"))
- .pipe(gulp.dest(paths.webroot.app));
- }
- }
- });
- var tsProject = ts.createProject("tsconfig.json", { noExternalResolve: true });
- gulp.task("scripts", function() {
- return gulp.src(paths.devroot.ts)
- .pipe(plumber({ errorHandler: notify.onError("ts: <%= error.message %>") }))
- .pipe(sourcemaps.init())
- .pipe(ts(tsProject))
- .pipe(uglify())
- .pipe(sourcemaps.write("./"))
- .pipe(gulp.dest(paths.webroot.app));
- });
- gulp.task("jade", function() {
- gulp.src(paths.devroot.jade)
- .pipe(plumber({ errorHandler: notify.onError("jade: <%= error.message %>") }))
- .pipe(jade({ pretty: true }))
- .pipe(gulp.dest(paths.webroot.app));
- });
- gulp.task("static", function() {
- gulp.src(paths.devroot.static)
- .pipe(gulp.dest(paths.webroot.app));
- });
- gulp.task("watch", ["scripts", "jade", "static"], function() {
- gulp.watch(paths.devroot.ts, ["scripts"]);
- gulp.watch(paths.devroot.jade, ["jade"]);
- gulp.watch(paths.devroot.static, ["static"]);
- });
Advertisement
Add Comment
Please, Sign In to add comment