2013-08-12 15:06:12 +02:00
|
|
|
module.exports = function (grunt) {
|
|
|
|
|
|
2015-01-02 14:25:11 +11:00
|
|
|
|
2014-04-10 14:25:26 +02:00
|
|
|
|
2015-01-02 14:25:11 +11:00
|
|
|
// Default task.
|
|
|
|
|
grunt.registerTask('default', ['jshint:dev', 'build', 'karma:unit']);
|
2014-08-04 13:56:51 +02:00
|
|
|
grunt.registerTask('dev', ['jshint:dev', 'build-dev', 'webserver', 'open:dev', 'watch']);
|
2014-08-26 15:07:40 +01:00
|
|
|
grunt.registerTask('docserve', ['docs:api', 'connect:docserver', 'open:docs', 'watch:docs']);
|
2014-08-04 13:56:51 +02:00
|
|
|
grunt.registerTask('vs', ['jshint:dev', 'build-dev', 'watch']);
|
2014-03-04 19:11:27 +01:00
|
|
|
|
2014-08-04 13:56:51 +02:00
|
|
|
//TODO: Too much watching, this brings windows to it's knees when in dev mode
|
2015-01-02 14:25:11 +11:00
|
|
|
//run by the watch task
|
|
|
|
|
grunt.registerTask('watch-js', ['jshint:dev', 'concat', 'copy:app', 'copy:mocks', 'copy:canvasdesigner', 'copy:vs', 'karma:unit']);
|
|
|
|
|
grunt.registerTask('watch-less', ['recess:build', 'recess:installer', 'recess:canvasdesigner', 'copy:canvasdesigner', 'copy:assets', 'copy:vs']);
|
|
|
|
|
grunt.registerTask('watch-html', ['copy:views', 'copy:vs']);
|
|
|
|
|
grunt.registerTask('watch-installer', ['concat:install', 'concat:installJs', 'copy:installer', 'copy:vs']);
|
|
|
|
|
grunt.registerTask('watch-canvasdesigner', ['copy:canvasdesigner', 'concat:canvasdesignerJs', 'copy:vs']);
|
|
|
|
|
grunt.registerTask('watch-test', ['jshint:dev', 'karma:unit']);
|
|
|
|
|
|
|
|
|
|
//triggered from grunt dev or grunt
|
|
|
|
|
grunt.registerTask('build', ['clean', 'concat', 'recess:min', 'recess:installer', 'recess:canvasdesigner', 'bower', 'copy']);
|
|
|
|
|
|
|
|
|
|
//build-dev doesn't min - we are trying to speed this up and we don't want minified stuff when we are in dev mode
|
|
|
|
|
grunt.registerTask('build-dev', ['clean', 'concat', 'recess:build', 'recess:installer', 'bower', 'copy']);
|
|
|
|
|
|
|
|
|
|
//utillity tasks
|
|
|
|
|
grunt.registerTask('docs', ['ngdocs']);
|
|
|
|
|
grunt.registerTask('webserver', ['connect:devserver']);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Print a timestamp (useful for when watching)
|
|
|
|
|
grunt.registerTask('timestamp', function () {
|
|
|
|
|
grunt.log.subhead(Date());
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// Project configuration.
|
|
|
|
|
grunt.initConfig({
|
|
|
|
|
buildVersion: grunt.option('buildversion') || '7',
|
|
|
|
|
connect: {
|
|
|
|
|
devserver: {
|
|
|
|
|
options: {
|
|
|
|
|
port: 9990,
|
|
|
|
|
hostname: '0.0.0.0',
|
|
|
|
|
base: './build',
|
2015-06-24 09:51:36 +02:00
|
|
|
middleware: function(connect, options) {
|
2015-01-02 14:25:11 +11:00
|
|
|
return [
|
2015-06-24 09:51:36 +02:00
|
|
|
//uncomment to enable CSP
|
|
|
|
|
// util.csp(),
|
|
|
|
|
//util.rewrite(),
|
|
|
|
|
connect.favicon('images/favicon.ico'),
|
|
|
|
|
connect.static(options.base),
|
|
|
|
|
connect.directory(options.base)
|
2015-01-02 14:25:11 +11:00
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
testserver: {},
|
|
|
|
|
docserver: {
|
|
|
|
|
options: {
|
|
|
|
|
port: 8880,
|
|
|
|
|
hostname: '0.0.0.0',
|
|
|
|
|
base: './docs/api',
|
2015-06-24 09:51:36 +02:00
|
|
|
middleware: function(connect, options) {
|
2015-01-02 14:25:11 +11:00
|
|
|
return [
|
2015-06-24 09:51:36 +02:00
|
|
|
//uncomment to enable CSP
|
|
|
|
|
// util.csp(),
|
|
|
|
|
//util.rewrite(),
|
|
|
|
|
connect.static(options.base),
|
|
|
|
|
connect.directory(options.base)
|
2015-01-02 14:25:11 +11:00
|
|
|
];
|
|
|
|
|
}
|
2014-05-12 13:07:44 +02:00
|
|
|
}
|
2015-01-02 14:25:11 +11:00
|
|
|
},
|
2013-09-04 23:31:05 +02:00
|
|
|
},
|
2015-01-02 14:25:11 +11:00
|
|
|
|
|
|
|
|
open: {
|
|
|
|
|
dev: {
|
|
|
|
|
path: 'http://localhost:9990/belle/'
|
|
|
|
|
},
|
|
|
|
|
docs: {
|
|
|
|
|
path: 'http://localhost:8880/index.html'
|
|
|
|
|
}
|
2014-02-26 15:50:22 +01:00
|
|
|
},
|
|
|
|
|
|
2015-01-02 14:25:11 +11:00
|
|
|
distdir: 'build/belle',
|
|
|
|
|
vsdir: '../Umbraco.Web.UI/umbraco',
|
|
|
|
|
pkg: grunt.file.readJSON('package.json'),
|
|
|
|
|
banner:
|
2015-06-24 09:51:36 +02:00
|
|
|
'/*! <%= pkg.title || pkg.name %>\n' +
|
|
|
|
|
'<%= pkg.homepage ? " * " + pkg.homepage + "\\n" : "" %>' +
|
|
|
|
|
' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author %>;\n' +
|
|
|
|
|
' * Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %>\n */\n',
|
2015-01-02 14:25:11 +11:00
|
|
|
src: {
|
|
|
|
|
js: ['src/**/*.js', 'src/*.js'],
|
|
|
|
|
common: ['src/common/**/*.js'],
|
|
|
|
|
specs: ['test/**/*.spec.js'],
|
|
|
|
|
scenarios: ['test/**/*.scenario.js'],
|
|
|
|
|
samples: ['sample files/*.js'],
|
|
|
|
|
html: ['src/index.html', 'src/install.html'],
|
|
|
|
|
|
|
|
|
|
everything: ['src/**/*.*', 'test/**/*.*', 'docs/**/*.*'],
|
|
|
|
|
|
|
|
|
|
tpl: {
|
|
|
|
|
app: ['src/views/**/*.html'],
|
|
|
|
|
common: ['src/common/**/*.tpl.html']
|
|
|
|
|
},
|
|
|
|
|
less: ['src/less/belle.less'], // recess:build doesn't accept ** in its file patterns
|
|
|
|
|
prod: ['<%= distdir %>/js/*.js']
|
2014-02-26 15:50:22 +01:00
|
|
|
},
|
2015-01-02 14:25:11 +11:00
|
|
|
|
|
|
|
|
clean: ['<%= distdir %>/*'],
|
|
|
|
|
|
|
|
|
|
copy: {
|
|
|
|
|
assets: {
|
|
|
|
|
files: [{ dest: '<%= distdir %>/assets', src: '**', expand: true, cwd: 'src/assets/' }]
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
config: {
|
|
|
|
|
files: [{ dest: '<%= distdir %>/../config', src: '**', expand: true, cwd: 'src/config/' }]
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
installer: {
|
|
|
|
|
files: [{ dest: '<%= distdir %>/views/install', src: '**/*.html', expand: true, cwd: 'src/installer/steps' }]
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
canvasdesigner: {
|
|
|
|
|
files: [
|
|
|
|
|
{ dest: '<%= distdir %>/preview', src: '**/*.html', expand: true, cwd: 'src/canvasdesigner' },
|
|
|
|
|
{ dest: '<%= distdir %>/preview/editors', src: '**/*.html', expand: true, cwd: 'src/canvasdesigner/editors' },
|
|
|
|
|
{ dest: '<%= distdir %>/assets/less', src: '**/*.less', expand: true, cwd: 'src/canvasdesigner/editors' },
|
|
|
|
|
{ dest: '<%= distdir %>/js', src: 'canvasdesigner.config.js', expand: true, cwd: 'src/canvasdesigner/config' },
|
|
|
|
|
{ dest: '<%= distdir %>/js', src: 'canvasdesigner.palettes.js', expand: true, cwd: 'src/canvasdesigner/config' },
|
|
|
|
|
{ dest: '<%= distdir %>/js', src: 'canvasdesigner.front.js', expand: true, cwd: 'src/canvasdesigner' }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
vendor: {
|
|
|
|
|
files: [{ dest: '<%= distdir %>/lib', src: '**', expand: true, cwd: 'lib/' }]
|
|
|
|
|
},
|
|
|
|
|
views: {
|
|
|
|
|
files: [{ dest: '<%= distdir %>/views', src: ['**/*.*', '!**/*.controller.js'], expand: true, cwd: 'src/views/' }]
|
|
|
|
|
},
|
|
|
|
|
app: {
|
|
|
|
|
files: [
|
|
|
|
|
{ dest: '<%= distdir %>/js', src: '*.js', expand: true, cwd: 'src/' }
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
mocks: {
|
|
|
|
|
files: [{ dest: '<%= distdir %>/js', src: '*.js', expand: true, cwd: 'src/common/mocks/' }]
|
|
|
|
|
},
|
|
|
|
|
vs: {
|
|
|
|
|
files: [
|
|
|
|
|
//everything except the index.html root file!
|
|
|
|
|
//then we need to figure out how to not copy all the test stuff either!?
|
|
|
|
|
{ dest: '<%= vsdir %>/assets', src: '**', expand: true, cwd: '<%= distdir %>/assets' },
|
2015-06-24 09:51:36 +02:00
|
|
|
{ dest: '<%= vsdir %>/js', src: '**', expand: true, cwd: '<%= distdir %>/js' },
|
2015-01-02 14:25:11 +11:00
|
|
|
{ dest: '<%= vsdir %>/views', src: '**', expand: true, cwd: '<%= distdir %>/views' },
|
|
|
|
|
{ dest: '<%= vsdir %>/preview', src: '**', expand: true, cwd: '<%= distdir %>/preview' },
|
|
|
|
|
{ dest: '<%= vsdir %>/lib', src: '**', expand: true, cwd: '<%= distdir %>/lib' }
|
|
|
|
|
]
|
|
|
|
|
}
|
2014-05-09 18:18:08 +02:00
|
|
|
},
|
2015-01-02 14:25:11 +11:00
|
|
|
|
|
|
|
|
karma: {
|
|
|
|
|
unit: { configFile: 'test/config/karma.conf.js', keepalive: true },
|
|
|
|
|
e2e: { configFile: 'test/config/e2e.js', keepalive: true },
|
|
|
|
|
watch: { configFile: 'test/config/unit.js', singleRun: false, autoWatch: true, keepalive: true }
|
2013-09-04 23:31:05 +02:00
|
|
|
},
|
2015-01-02 14:25:11 +11:00
|
|
|
|
|
|
|
|
concat: {
|
|
|
|
|
index: {
|
|
|
|
|
src: ['src/index.html'],
|
|
|
|
|
dest: '<%= distdir %>/index.html',
|
|
|
|
|
options: {
|
|
|
|
|
process: true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
install: {
|
|
|
|
|
src: ['src/installer/installer.html'],
|
|
|
|
|
dest: '<%= distdir %>/installer.html',
|
|
|
|
|
options: {
|
|
|
|
|
process: true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
installJs: {
|
|
|
|
|
src: ['src/installer/**/*.js'],
|
|
|
|
|
dest: '<%= distdir %>/js/umbraco.installer.js',
|
|
|
|
|
options: {
|
|
|
|
|
banner: "<%= banner %>\n(function() { \n\n angular.module('umbraco.install', []); \n",
|
|
|
|
|
footer: "\n\n})();"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
canvasdesignerJs: {
|
|
|
|
|
src: ['src/canvasdesigner/canvasdesigner.global.js', 'src/canvasdesigner/canvasdesigner.controller.js', 'src/canvasdesigner/editors/*.js', 'src/canvasdesigner/lib/*.js'],
|
|
|
|
|
dest: '<%= distdir %>/js/canvasdesigner.panel.js'
|
|
|
|
|
},
|
|
|
|
|
controllers: {
|
|
|
|
|
src: ['src/controllers/**/*.controller.js', 'src/views/**/*.controller.js'],
|
|
|
|
|
dest: '<%= distdir %>/js/umbraco.controllers.js',
|
|
|
|
|
options: {
|
|
|
|
|
banner: "<%= banner %>\n(function() { \n\n",
|
|
|
|
|
footer: "\n\n})();"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
services: {
|
|
|
|
|
src: ['src/common/services/*.js'],
|
|
|
|
|
dest: '<%= distdir %>/js/umbraco.services.js',
|
|
|
|
|
options: {
|
|
|
|
|
banner: "<%= banner %>\n(function() { \n\n",
|
|
|
|
|
footer: "\n\n})();"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
security: {
|
|
|
|
|
src: ['src/common/security/*.js'],
|
|
|
|
|
dest: '<%= distdir %>/js/umbraco.security.js',
|
|
|
|
|
options: {
|
|
|
|
|
banner: "<%= banner %>\n(function() { \n\n",
|
|
|
|
|
footer: "\n\n})();"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
resources: {
|
|
|
|
|
src: ['src/common/resources/*.js'],
|
|
|
|
|
dest: '<%= distdir %>/js/umbraco.resources.js',
|
|
|
|
|
options: {
|
|
|
|
|
banner: "<%= banner %>\n(function() { \n\n",
|
|
|
|
|
footer: "\n\n})();"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
testing: {
|
|
|
|
|
src: ['src/common/mocks/*/*.js'],
|
|
|
|
|
dest: '<%= distdir %>/js/umbraco.testing.js',
|
|
|
|
|
options: {
|
|
|
|
|
banner: "<%= banner %>\n(function() { \n\n",
|
|
|
|
|
footer: "\n\n})();"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
directives: {
|
|
|
|
|
src: ['src/common/directives/**/*.js'],
|
|
|
|
|
dest: '<%= distdir %>/js/umbraco.directives.js',
|
|
|
|
|
options: {
|
|
|
|
|
banner: "<%= banner %>\n(function() { \n\n",
|
|
|
|
|
footer: "\n\n})();"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
filters: {
|
|
|
|
|
src: ['src/common/filters/*.js'],
|
|
|
|
|
dest: '<%= distdir %>/js/umbraco.filters.js',
|
|
|
|
|
options: {
|
|
|
|
|
banner: "<%= banner %>\n(function() { \n\n",
|
|
|
|
|
footer: "\n\n})();"
|
|
|
|
|
}
|
|
|
|
|
}
|
2013-09-04 23:31:05 +02:00
|
|
|
},
|
2015-01-02 14:25:11 +11:00
|
|
|
|
|
|
|
|
uglify: {
|
|
|
|
|
options: {
|
|
|
|
|
mangle: true
|
|
|
|
|
},
|
|
|
|
|
combine: {
|
|
|
|
|
files: {
|
|
|
|
|
'<%= distdir %>/js/umbraco.min.js': ['<%= distdir %>/js/umbraco.*.js']
|
|
|
|
|
}
|
|
|
|
|
}
|
2013-09-04 23:31:05 +02:00
|
|
|
},
|
2015-01-02 14:25:11 +11:00
|
|
|
|
|
|
|
|
recess: {
|
|
|
|
|
build: {
|
|
|
|
|
files: {
|
|
|
|
|
'<%= distdir %>/assets/css/<%= pkg.name %>.css':
|
|
|
|
|
['<%= src.less %>']
|
|
|
|
|
},
|
|
|
|
|
options: {
|
|
|
|
|
compile: true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
installer: {
|
|
|
|
|
files: {
|
|
|
|
|
'<%= distdir %>/assets/css/installer.css':
|
|
|
|
|
['src/less/installer.less']
|
|
|
|
|
},
|
|
|
|
|
options: {
|
|
|
|
|
compile: true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
canvasdesigner: {
|
|
|
|
|
files: {
|
|
|
|
|
'<%= distdir %>/assets/css/canvasdesigner.css':
|
2015-05-21 07:50:02 +02:00
|
|
|
['src/less/canvas-designer.less', 'src/less/helveticons.less']
|
2015-01-02 14:25:11 +11:00
|
|
|
},
|
|
|
|
|
options: {
|
|
|
|
|
compile: true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
min: {
|
|
|
|
|
files: {
|
|
|
|
|
'<%= distdir %>/assets/css/<%= pkg.name %>.css': ['<%= src.less %>']
|
|
|
|
|
},
|
|
|
|
|
options: {
|
|
|
|
|
compile: true,
|
|
|
|
|
compress: true
|
|
|
|
|
}
|
|
|
|
|
}
|
2013-09-04 23:31:05 +02:00
|
|
|
},
|
2015-01-02 14:25:11 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
watch: {
|
2015-06-17 11:56:20 +02:00
|
|
|
docs: {
|
|
|
|
|
files: ['docs/src/**/*.md'],
|
|
|
|
|
tasks: ['watch-docs', 'timestamp']
|
|
|
|
|
},
|
2015-01-02 14:25:11 +11:00
|
|
|
css: {
|
|
|
|
|
files: 'src/**/*.less',
|
|
|
|
|
tasks: ['watch-less', 'timestamp'],
|
|
|
|
|
options: {
|
|
|
|
|
livereload: true,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
js: {
|
|
|
|
|
files: ['src/**/*.js', 'src/*.js'],
|
|
|
|
|
tasks: ['watch-js', 'timestamp'],
|
|
|
|
|
},
|
|
|
|
|
test: {
|
|
|
|
|
files: ['test/**/*.js'],
|
|
|
|
|
tasks: ['watch-test', 'timestamp'],
|
|
|
|
|
},
|
|
|
|
|
installer: {
|
|
|
|
|
files: ['src/installer/**/*.*'],
|
|
|
|
|
tasks: ['watch-installer', 'timestamp'],
|
|
|
|
|
},
|
|
|
|
|
canvasdesigner: {
|
|
|
|
|
files: ['src/canvasdesigner/**/*.*'],
|
|
|
|
|
tasks: ['watch-canvasdesigner', 'timestamp'],
|
|
|
|
|
},
|
|
|
|
|
html: {
|
|
|
|
|
files: ['src/views/**/*.html', 'src/*.html'],
|
|
|
|
|
tasks: ['watch-html', 'timestamp']
|
|
|
|
|
}
|
2013-09-04 23:31:05 +02:00
|
|
|
},
|
2015-01-02 14:25:11 +11:00
|
|
|
|
|
|
|
|
|
|
|
|
|
ngdocs: {
|
|
|
|
|
options: {
|
|
|
|
|
dest: 'docs/api',
|
|
|
|
|
startPage: '/api',
|
|
|
|
|
title: "Umbraco 7",
|
|
|
|
|
html5Mode: false,
|
|
|
|
|
},
|
|
|
|
|
api: {
|
|
|
|
|
src: ['src/common/**/*.js', 'docs/src/api/**/*.ngdoc'],
|
|
|
|
|
title: 'API Documentation'
|
|
|
|
|
},
|
|
|
|
|
tutorials: {
|
2015-06-17 11:56:20 +02:00
|
|
|
src: [],
|
|
|
|
|
title: ''
|
2015-01-02 14:25:11 +11:00
|
|
|
}
|
2013-09-04 23:31:05 +02:00
|
|
|
},
|
2015-01-02 14:25:11 +11:00
|
|
|
|
|
|
|
|
jshint: {
|
|
|
|
|
dev: {
|
|
|
|
|
files: {
|
|
|
|
|
src: ['<%= src.common %>', '<%= src.specs %>', '<%= src.scenarios %>', '<%= src.samples %>']
|
|
|
|
|
},
|
|
|
|
|
options: {
|
|
|
|
|
curly: true,
|
|
|
|
|
eqeqeq: true,
|
|
|
|
|
immed: true,
|
|
|
|
|
latedef: true,
|
|
|
|
|
newcap: true,
|
|
|
|
|
noarg: true,
|
|
|
|
|
sub: true,
|
|
|
|
|
boss: true,
|
|
|
|
|
//NOTE: This is required so it doesn't barf on reserved words like delete when doing $http.delete
|
|
|
|
|
es5: true,
|
|
|
|
|
eqnull: true,
|
|
|
|
|
//NOTE: we need to use eval sometimes so ignore it
|
|
|
|
|
evil: true,
|
|
|
|
|
//NOTE: we need to check for strings such as "javascript:" so don't throw errors regarding those
|
|
|
|
|
scripturl: true,
|
|
|
|
|
//NOTE: we ignore tabs vs spaces because enforcing that causes lots of errors depending on the text editor being used
|
|
|
|
|
smarttabs: true,
|
|
|
|
|
globals: {}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
build: {
|
|
|
|
|
files: {
|
|
|
|
|
src: ['<%= src.prod %>']
|
|
|
|
|
},
|
|
|
|
|
options: {
|
|
|
|
|
curly: true,
|
|
|
|
|
eqeqeq: true,
|
|
|
|
|
immed: true,
|
|
|
|
|
latedef: true,
|
|
|
|
|
newcap: true,
|
|
|
|
|
noarg: true,
|
|
|
|
|
sub: true,
|
|
|
|
|
boss: true,
|
|
|
|
|
//NOTE: This is required so it doesn't barf on reserved words like delete when doing $http.delete
|
|
|
|
|
es5: true,
|
|
|
|
|
eqnull: true,
|
|
|
|
|
//NOTE: we need to use eval sometimes so ignore it
|
|
|
|
|
evil: true,
|
|
|
|
|
//NOTE: we need to check for strings such as "javascript:" so don't throw errors regarding those
|
|
|
|
|
scripturl: true,
|
|
|
|
|
//NOTE: we ignore tabs vs spaces because enforcing that causes lots of errors depending on the text editor being used
|
|
|
|
|
smarttabs: true,
|
|
|
|
|
globalstrict: true,
|
|
|
|
|
globals: { $: false, jQuery: false, define: false, require: false, window: false }
|
|
|
|
|
}
|
|
|
|
|
}
|
2013-08-12 15:06:12 +02:00
|
|
|
},
|
2015-01-02 14:25:11 +11:00
|
|
|
|
|
|
|
|
bower: {
|
2015-06-17 15:06:34 +02:00
|
|
|
dev: {
|
|
|
|
|
dest: '<%= distdir %>/lib',
|
2015-01-02 14:25:11 +11:00
|
|
|
options: {
|
2015-06-17 15:06:34 +02:00
|
|
|
expand: true,
|
|
|
|
|
ignorePackages: ['blueimp-canvas-to-blob', 'blueimp-tmpl', 'bootstrap'],
|
|
|
|
|
packageSpecific: {
|
2015-06-24 09:51:36 +02:00
|
|
|
'typeahead.js': {
|
2015-06-17 15:06:34 +02:00
|
|
|
keepExpandedHierarchy: false
|
|
|
|
|
},
|
|
|
|
|
'underscore': {
|
|
|
|
|
files: ['underscore-min.js', 'underscore-min.map']
|
|
|
|
|
},
|
|
|
|
|
'rgrove-lazyload': {
|
|
|
|
|
files: ['lazyload.js']
|
|
|
|
|
},
|
|
|
|
|
'angular-dynamic-locale': {
|
|
|
|
|
files: ['tmhDynamicLocale.min.js,tmhDynamicLocale.min.js.map}']
|
|
|
|
|
},
|
|
|
|
|
'bootstrap-social': {
|
|
|
|
|
files: ['bootstrap-social.css']
|
|
|
|
|
},
|
|
|
|
|
'font-awesome': {
|
|
|
|
|
files: ['css/font-awesome.min.css', 'fonts/*']
|
|
|
|
|
},
|
|
|
|
|
'jquery': {
|
|
|
|
|
files: ['jquery.min.js', 'jquery.min.map']
|
|
|
|
|
},
|
|
|
|
|
'jquery-file-upload': {
|
|
|
|
|
keepExpandedHierarchy: false,
|
|
|
|
|
files: ['js/jquery.fileupload.js', 'js/jquery.fileupload-process.js', 'js/jquery.fileupload-angular.js', 'js/jquery.fileupload-image.js']
|
|
|
|
|
},
|
|
|
|
|
'jquery-ui': {
|
|
|
|
|
keepExpandedHierarchy: false,
|
|
|
|
|
files: ['ui/minified/jquery-ui.min.js']
|
|
|
|
|
},
|
|
|
|
|
'blueimp-load-image': {
|
|
|
|
|
keepExpandedHierarchy: false,
|
|
|
|
|
files: ['js/load-image.all.min.js']
|
|
|
|
|
},
|
|
|
|
|
'tinymce': {
|
|
|
|
|
files: ['plugins/**', 'themes/**', 'tinymce.min.js']
|
|
|
|
|
},
|
|
|
|
|
'angular-dynamic-locale': {
|
|
|
|
|
files: ['tmhDynamicLocale.min.js', 'tmhDynamicLocale.min.js.map']
|
2015-06-19 10:54:46 +02:00
|
|
|
},
|
|
|
|
|
'bootstrap-tabdrop': {
|
|
|
|
|
keepExpandedHierarchy: false
|
2015-06-24 09:51:36 +02:00
|
|
|
},
|
|
|
|
|
'ng-file-upload': {
|
|
|
|
|
keepExpandedHierarchy: false,
|
|
|
|
|
files: ['angular-file-upload.min.js']
|
2015-06-17 15:06:34 +02:00
|
|
|
}
|
2015-01-02 14:25:11 +11:00
|
|
|
}
|
|
|
|
|
}
|
2015-06-17 15:06:34 +02:00
|
|
|
},
|
|
|
|
|
options: {
|
|
|
|
|
expand: true
|
2015-01-02 14:25:11 +11:00
|
|
|
}
|
2013-08-12 15:06:12 +02:00
|
|
|
}
|
2015-01-02 14:25:11 +11:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-clean');
|
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-copy');
|
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-watch');
|
|
|
|
|
grunt.loadNpmTasks('grunt-recess');
|
|
|
|
|
|
|
|
|
|
grunt.loadNpmTasks('grunt-karma');
|
|
|
|
|
|
|
|
|
|
grunt.loadNpmTasks('grunt-open');
|
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-connect');
|
2015-06-17 15:06:34 +02:00
|
|
|
grunt.loadNpmTasks('grunt-bower');
|
2015-01-02 14:25:11 +11:00
|
|
|
grunt.loadNpmTasks('grunt-ngdocs');
|
2013-09-04 23:31:05 +02:00
|
|
|
|
2013-08-12 15:06:12 +02:00
|
|
|
};
|