kounderscore
Version:
Knockout Underscore integration.
146 lines (127 loc) • 4.33 kB
JavaScript
'use strict';
module.exports = function (grunt) {
// Load grunt tasks automatically
require("jit-grunt")(grunt, {
nugetpack: "grunt-nuget",
nugetpush: "grunt-nuget"
});
require('time-grunt')(grunt); // Time how long tasks take. Can help when optimizing build times
var options = {
dev: grunt.option('dev')
};
// Define the configuration for all the tasks
grunt.initConfig({
pkg: grunt.file.readJSON("package.json"),
paths: {
src: 'src',
build: 'dist',
temp: '.temp',
test: 'test'
},
typescript: {
options: {
target: "es3",
sourceMap: false,
declaration: false,
comments: false,
disallowbool: true,
disallowimportmodule: true
},
dev: {
src: ["_definitions.d.ts", "<%= paths.src %>/**/*.ts"],
options: {
sourceMap: true
}
},
test: {
src: "<%= paths.test %>/**/*.ts",
options: {
module: "amd"
}
},
dist: {
src: ["_definitions.d.ts", "<%= paths.src %>/**/*.ts"],
dest: "<%= paths.build %>/",
options: {
basePath: "<%= paths.src %>"
}
}
},
uglify: {
options: {},
dist: {
src: "<%= paths.build %>/kounderscore.js",
dest: "<%= paths.build %>/kounderscore.min.js"
}
},
jshint: {
options: {
jshintrc: "jshint.json",
},
base: ["*.js"],
dev: ["<%= paths.src %>/**/*.js"],
dist: ["<%= paths.build %>/**/*.js", "!**/*.min.js"],
test: ["<%= paths.test %>/**/*.js"]
},
tslint: {
options: {
configuration: grunt.file.readJSON("tslint.json")
},
dev: {
src: "<%= paths.src %>/**/*.ts"
},
test: {
src: "<%= paths.test %>/**/*.ts"
}
},
connect: {
test: {
options: {
port: "8080",
open: "http://localhost:8080/test/index.html",
keepalive: true
}
}
},
mocha: {
test: ["<%= paths.test %>/index.html"]
},
clean: {
dev: [
"<%= paths.src %>/**/*.d.ts",
"<%= paths.src %>/**/*.js",
"<%= paths.src %>/**/*.js.map"
],
test: [
"<%= paths.test %>/**/*.d.ts",
"<%= paths.test %>/**/*.js",
"<%= paths.test %>/**/*.js.map"
]
},
nugetpack: {
all: {
src: "nuget/*.nuspec",
dest: "nuget/",
options: {
version: "<%= pkg.version %>"
}
}
},
nugetpush: {
all: {
src: "nuget/*.<%= pkg.version %>.nupkg"
}
}
});
grunt.registerTask("createdecla", function () {
var content = grunt.file.read("src/kounderscore.d.ts");
content = content.replace(/\.{2}\/typings/g, "../../../typings");
grunt.file.write("dist/kounderscore.d.ts", content);
});
grunt.registerTask("dev", ["tslint:dev", "typescript:dev", "jshint:dev"]);
grunt.registerTask("build", ["tslint:dev", "typescript:dist", "uglify:dist", "jshint:dist", "createdecla"]);
grunt.registerTask("test", ["dev", "tslint:test", "typescript:test", "jshint:test", "mocha:test", "clean"]);
grunt.registerTask("btest", ["dev", "tslint:test", "typescript:test", "jshint:test", "connect:test", "clean"]);
grunt.registerTask("nuget", ["nugetpack", "nugetpush"]);
grunt.registerTask("default", ["clean", "test", "build"]);
};