Files
Phraseanet/Gruntfile.js
2013-08-26 10:20:50 +02:00

321 lines
11 KiB
JavaScript

module.exports = function(grunt) {
grunt.initConfig({
"pkg": grunt.file.readJSON("package.json"),
"path": {
"bower": "tmp-assets",
"asset": "www/assets"
},
mocha_phantomjs: {
options: {
'reporter': 'dot'
},
all: ['www/scripts/tests/index.html']
},
qunit: {
all: ['www/include/js/tests/*.html']
},
clean: {
"assets": ["<%= path.bower %>", "<%= path.asset %>"]
},
bower: {
install: {
options: {
"copy": false
}
}
},
bower_postinst: {
dist: {
options: {
components: {
"jquery.ui": ["npm", {"grunt": "build"}],
"jquery-mobile": ["npm", {"grunt": "dist"}],
"tinymce": ["npm", "jake"],
"bootstrap": ["npm", {"make": "bootstrap"}]
}
}
}
},
copy: {
"backbone": {
"expand": true,
"src": [
"<%= path.bower %>/backbone-amd/LICENSE",
"<%= path.bower %>/backbone-amd/backbone.js"
],
"dest": "<%= path.asset %>/backbone-amd/",
"flatten": true
},
"blueimp": {
"expand": true,
"src": "js/load-image.js",
"dest": "<%= path.asset %>/blueimp-load-image/",
"cwd": "<%= path.bower %>/blueimp-load-image",
"flatten": true
},
"bootstrap": {
"expand": true,
"cwd": "<%= path.bower %>/bootstrap",
"src": [
"bootstrap/css/*",
"bootstrap/js/*",
"bootstrap/img/*",
"less/*.less",
"LICENSE"
],
"rename": function(dest, src) {
return dest + src.replace("bootstrap", "");
},
"dest": "<%= path.asset %>/bootstrap/"
},
"bootstrap-multiselect": {
"expand": true,
"cwd": "<%= path.bower %>/bootstrap-multiselect",
"src": [
"css/bootstrap-multiselect.css",
"js/bootstrap-multiselect.js"
],
"dest": "<%= path.asset %>/bootstrap-multiselect/"
},
"chai": {
"expand": true,
"src": "<%= path.bower %>/chai/chai.js",
"dest": "<%= path.asset %>/chai/",
"flatten": true
},
"font-awesome": {
"expand": true,
"cwd": "<%= path.bower %>/font-awesome",
"src": ["css/*", "font/*"],
"dest": "<%= path.asset %>/font-awesome/"
},
"geonames-server-jquery-plugin": {
"expand": true,
"flatten": true,
"src": [
"<%= path.bower %>/geonames-server-jquery-plugin/LICENSE",
"<%= path.bower %>/geonames-server-jquery-plugin/jquery.geonames.js"
],
"dest": "<%= path.asset %>/geonames-server-jquery-plugin"
}
,
"humane-js": {
"expand": true,
"src": ["humane.js", "themes/libnotify.css"],
"dest": "<%= path.asset %>/humane-js/",
"cwd": "<%= path.bower %>/humane-js/"
},
"i18next": {
"expand": true,
"src": "<%= path.bower %>/i18next/release/i18next.amd-1.6.3.js",
"dest": "<%= path.asset %>/i18next/",
"flatten": true
},
"jquery": {
"expand": true,
"src": "<%= path.bower %>/jquery/jquery.js",
"dest": "<%= path.asset %>/jquery/",
"flatten": true
},
"jquery-file-upload": {
"expand": true,
"src": [
"<%= path.bower %>/jquery-file-upload/js/jquery.fileupload.js",
"<%= path.bower %>/jquery-file-upload/js/jquery.iframe-transport.js",
"<%= path.bower %>/jquery-file-upload/css/jquery.fileupload-ui.css"
],
"dest": "<%= path.asset %>/jquery-file-upload/",
"flatten": true
},
"jquery-mobile": {
"expand": true,
"cwd": "<%= path.bower %>/jquery-mobile/dist",
"src": [
"images/*",
"jquery.mobile.css",
"jquery.mobile.js"
],
"dest": "<%= path.asset %>/jquery-mobile/"
},
"jquery-ui": {
"expand": true,
"cwd": "<%= path.bower %>/jquery.ui",
"src": [
"dist/i18n/*",
"dist/images/*",
"themes/base/*",
"themes/base/images/*",
"dist/jquery-ui.css",
"dist/jquery-ui.js"
],
"rename": function(dest, src) {
return dest + src.replace("dist", "");
},
"dest": "<%= path.asset %>/jquery.ui/"
},
"js-fixtures": {
"expand": true,
"src": [
"<%= path.bower %>/js-fixtures/LICENSE",
"<%= path.bower %>/js-fixtures/fixtures.js"
],
"dest": "<%= path.asset %>/js-fixtures/",
"flatten": true
},
"json2": {
"expand": true,
"src": "<%= path.bower %>/json2/json2.js",
"dest": "<%= path.asset %>/json2/",
"flatten": true
},
"json3": {
"expand": true,
"src": [
"<%= path.bower %>/json3/LICENSE",
"<%= path.bower %>/json3/lib/json3.js"
],
"dest": "<%= path.asset %>/json3/",
"flatten": true
},
"mocha": {
"expand": true,
"src": [
"<%= path.bower %>/mocha/LICENSE",
"<%= path.bower %>/mocha/mocha.js",
"<%= path.bower %>/mocha/mocha.css"
],
"dest": "<%= path.asset %>/mocha/",
"flatten": true
},
"modernizr": {
"expand": true,
"src": "<%= path.bower %>/modernizr/modernizr.js",
"dest": "<%= path.asset %>/modernizr/",
"flatten": true
},
"normalize": {
"expand": true,
"src": [
"<%= path.bower %>/normalize-css/normalize.css",
"<%= path.bower %>/normalize-css/LICENSE.md"
],
"dest": "<%= path.asset %>/normalize-css/",
"flatten": true
},
"qunit": {
"expand": true,
"src": [
"qunit/qunit.css",
"qunit/qunit.js",
"addons/phantomjs/*"
],
"dest": "<%= path.asset %>/qunit/",
"cwd": "<%= path.bower %>/qunit/",
"rename": function(dest, src) {
return dest + src.replace("qunit", "");
}
},
"requirejs": {
"expand": true,
"src": [
"<%= path.bower %>/requirejs/LICENSE",
"<%= path.bower %>/requirejs/require.js"
],
"dest": "<%= path.asset %>/requirejs/",
"flatten": true
},
"swfobject": {
"expand": true,
"src": "<%= path.bower %>/swfobject/swfobject/swfobject.js",
"dest": "<%= path.asset %>/swfobject",
"flatten": true
},
"tinymce": {
"expand": true,
"cwd": "<%= path.bower %>/tinymce/js/tinymce",
"src": [
"plugins/**",
"skins/**",
"themes/**",
"tinymce.js",
"license.txt"
],
"dest": "<%= path.asset %>/tinymce"
},
"underscore": {
"expand": true,
"src": [
"<%= path.bower %>/underscore-amd/LICENSE",
"<%= path.bower %>/underscore-amd/underscore.js"
],
"dest": "<%= path.asset %>/underscore-amd/",
"flatten": true
},
"zxcvbn": {
"expand": true,
"src": [
"<%= path.bower %>/zxcvbn/LICENSE.txt",
"<%= path.bower %>/zxcvbn/zxcvbn-async.js"
],
"dest": "<%= path.asset %>/zxcvbn",
"flatten": true
}
},
csslint: {
options: {
// Possible Errors
"box-model": false,
"duplicate-properties": false,
"empty-rules": false,
"errors": false,
"known-properties": false,
"display-property-grouping": false,
"non-link-hover": false,
// Compatibility
"adjoining-classes": false,
"box-sizing": false,
"compatible-vendor-prefixes": false,
"gradients": false,
"text-indent": false,
"fallback-colors": false,
"vendor-prefix": false,
"star-property-hack": false,
"underscore-property-hack": false,
"bulletproof-font-face": false,
// Performance
"font-faces": false,
"regex-selectors": false,
"unqualified-attributes": false,
"universal-selector": false,
"zero-units": false,
"overqualified-elements": false,
"duplicate-background-images": false,
"import": false,
// Maintainability & Duplication
"important": false,
"floats": false,
"font-sizes": false,
"ids": false,
// Accessibility
"outline-none": false,
// OOCSS
"qualified-headings": false,
"unique-headings": false,
// Others
"shorthand": false
},
all: {
src: ['www/skins/**/*.css']
}
}
});
grunt.loadNpmTasks("grunt-contrib");
grunt.loadNpmTasks("grunt-bower-task");
grunt.loadNpmTasks("grunt-bower-postinst");
grunt.loadNpmTasks('grunt-mocha-phantomjs');
grunt.registerTask("install-assets", ["clean:assets", "bower", "bower_postinst", "copy"]);
grunt.registerTask('test', ["qunit", "mocha_phantomjs"]);
};