Gruntfile.js
195 lines
| 6.7 KiB
| application/javascript
|
JavascriptLexer
r1 | module.exports = function(grunt) { | |||
grunt.initConfig({ | ||||
dirs: { | ||||
css: "rhodecode/public/css", | ||||
js: { | ||||
"src": "rhodecode/public/js/src", | ||||
"dest": "rhodecode/public/js" | ||||
} | ||||
}, | ||||
r689 | copy: { | |||
main: { | ||||
expand: true, | ||||
cwd: 'bower_components', | ||||
r728 | src: 'webcomponentsjs/webcomponents-lite.js', | |||
r689 | dest: '<%= dirs.js.dest %>/vendors', | |||
}, | ||||
}, | ||||
r1 | concat: { | |||
r714 | polymercss:{ | |||
src: [ | ||||
// Base libraries | ||||
'<%= dirs.js.src %>/components/root-styles-prefix.html', | ||||
'<%= dirs.css %>/style-polymer.css', | ||||
'<%= dirs.js.src %>/components/root-styles-suffix.html' | ||||
], | ||||
dest: '<%= dirs.js.dest %>/src/components/root-styles.gen.html', | ||||
nonull: true | ||||
}, | ||||
r1 | dist: { | |||
src: [ | ||||
// Base libraries | ||||
'<%= dirs.js.src %>/jquery-1.11.1.min.js', | ||||
'<%= dirs.js.src %>/logging.js', | ||||
'<%= dirs.js.src %>/bootstrap.js', | ||||
'<%= dirs.js.src %>/mousetrap.js', | ||||
'<%= dirs.js.src %>/moment.js', | ||||
'<%= dirs.js.src %>/appenlight-client-0.4.1.min.js', | ||||
r324 | '<%= dirs.js.src %>/i18n_utils.js', | |||
r524 | '<%= dirs.js.src %>/deform.js', | |||
r1 | ||||
// Plugins | ||||
'<%= dirs.js.src %>/plugins/jquery.pjax.js', | ||||
'<%= dirs.js.src %>/plugins/jquery.dataTables.js', | ||||
'<%= dirs.js.src %>/plugins/flavoured_checkbox.js', | ||||
'<%= dirs.js.src %>/plugins/jquery.auto-grow-input.js', | ||||
'<%= dirs.js.src %>/plugins/jquery.autocomplete.js', | ||||
'<%= dirs.js.src %>/plugins/jquery.debounce.js', | ||||
r48 | '<%= dirs.js.src %>/plugins/jquery.mark.js', | |||
r1 | '<%= dirs.js.src %>/plugins/jquery.timeago.js', | |||
'<%= dirs.js.src %>/plugins/jquery.timeago-extension.js', | ||||
// Select2 | ||||
'<%= dirs.js.src %>/select2/select2.js', | ||||
r48 | ||||
r1 | // Code-mirror | |||
'<%= dirs.js.src %>/codemirror/codemirror.js', | ||||
'<%= dirs.js.src %>/codemirror/codemirror_loadmode.js', | ||||
'<%= dirs.js.src %>/codemirror/codemirror_hint.js', | ||||
'<%= dirs.js.src %>/codemirror/codemirror_overlay.js', | ||||
'<%= dirs.js.src %>/codemirror/codemirror_placeholder.js', | ||||
// TODO: mikhail: this is an exception. Since the code mirror modes | ||||
// are loaded "on the fly", we need to keep them in a public folder | ||||
'<%= dirs.js.dest %>/mode/meta.js', | ||||
'<%= dirs.js.dest %>/mode/meta_ext.js', | ||||
'<%= dirs.js.dest %>/rhodecode/i18n/select2/translations.js', | ||||
// Rhodecode utilities | ||||
'<%= dirs.js.src %>/rhodecode/utils/array.js', | ||||
'<%= dirs.js.src %>/rhodecode/utils/string.js', | ||||
'<%= dirs.js.src %>/rhodecode/utils/pyroutes.js', | ||||
'<%= dirs.js.src %>/rhodecode/utils/ajax.js', | ||||
'<%= dirs.js.src %>/rhodecode/utils/autocomplete.js', | ||||
'<%= dirs.js.src %>/rhodecode/utils/colorgenerator.js', | ||||
'<%= dirs.js.src %>/rhodecode/utils/ie.js', | ||||
'<%= dirs.js.src %>/rhodecode/utils/os.js', | ||||
r340 | '<%= dirs.js.src %>/rhodecode/utils/topics.js', | |||
r1 | ||||
// Rhodecode widgets | ||||
'<%= dirs.js.src %>/rhodecode/widgets/multiselect.js', | ||||
// Rhodecode components | ||||
r94 | '<%= dirs.js.src %>/rhodecode/init.js', | |||
r526 | '<%= dirs.js.src %>/rhodecode/connection_controller.js', | |||
r1 | '<%= dirs.js.src %>/rhodecode/codemirror.js', | |||
'<%= dirs.js.src %>/rhodecode/comments.js', | ||||
'<%= dirs.js.src %>/rhodecode/constants.js', | ||||
'<%= dirs.js.src %>/rhodecode/files.js', | ||||
'<%= dirs.js.src %>/rhodecode/followers.js', | ||||
'<%= dirs.js.src %>/rhodecode/menus.js', | ||||
'<%= dirs.js.src %>/rhodecode/notifications.js', | ||||
'<%= dirs.js.src %>/rhodecode/permissions.js', | ||||
'<%= dirs.js.src %>/rhodecode/pjax.js', | ||||
'<%= dirs.js.src %>/rhodecode/pullrequests.js', | ||||
'<%= dirs.js.src %>/rhodecode/settings.js', | ||||
'<%= dirs.js.src %>/rhodecode/select2_widgets.js', | ||||
'<%= dirs.js.src %>/rhodecode/tooltips.js', | ||||
'<%= dirs.js.src %>/rhodecode/users.js', | ||||
r526 | '<%= dirs.js.src %>/rhodecode/utils/notifications.js', | |||
r1 | '<%= dirs.js.src %>/rhodecode/appenlight.js', | |||
// Rhodecode main module | ||||
r730 | '<%= dirs.js.src %>/rhodecode.js', | |||
r1 | ], | |||
dest: '<%= dirs.js.dest %>/scripts.js', | ||||
nonull: true | ||||
} | ||||
}, | ||||
r730 | crisper: { | |||
dist: { | ||||
options: { | ||||
cleanup: false, | ||||
onlySplit: true | ||||
}, | ||||
src: '<%= dirs.js.dest %>/rhodecode-components.html', | ||||
dest: '<%= dirs.js.dest %>/rhodecode-components.js' | ||||
} | ||||
}, | ||||
r1 | less: { | |||
development: { | ||||
options: { | ||||
compress: false, | ||||
yuicompress: false, | ||||
optimization: 0 | ||||
}, | ||||
files: { | ||||
r699 | "<%= dirs.css %>/style.css": "<%= dirs.css %>/main.less", | |||
"<%= dirs.css %>/style-polymer.css": "<%= dirs.css %>/polymer.less" | ||||
r1 | } | |||
}, | ||||
production: { | ||||
options: { | ||||
compress: true, | ||||
yuicompress: true, | ||||
optimization: 2 | ||||
}, | ||||
files: { | ||||
r699 | "<%= dirs.css %>/style.css": "<%= dirs.css %>/main.less", | |||
"<%= dirs.css %>/style-polymer.css": "<%= dirs.css %>/polymer.less" | ||||
r1 | } | |||
r703 | }, | |||
components: { | ||||
files: [{ | ||||
cwd: '<%= dirs.js.src %>/components/', | ||||
dest: '<%= dirs.js.src %>/components/', | ||||
src: ['**/*.less'], | ||||
expand: true, | ||||
ext: '.css' | ||||
}] | ||||
r1 | } | |||
}, | ||||
watch: { | ||||
less: { | ||||
r714 | files: ["<%= dirs.css %>/**/*.less"], | |||
tasks: ["less:development", 'less:components', 'concat:polymercss', "vulcanize"] | ||||
r1 | }, | |||
js: { | ||||
r714 | files: ["<%= dirs.js.src %>/**/*.js", "<%= dirs.js.src %>/components/**/*.html"], | |||
r730 | tasks: ['less:components', 'concat:polymercss', "vulcanize", 'crisper', "concat:dist"] | |||
r1 | } | |||
}, | ||||
jshint: { | ||||
rhodecode: { | ||||
src: '<%= dirs.js.src %>/rhodecode/**/*.js', | ||||
options: { | ||||
jshintrc: '.jshintrc' | ||||
} | ||||
} | ||||
r689 | }, | |||
vulcanize: { | ||||
default: { | ||||
options: { | ||||
abspath: '', | ||||
inlineScripts: true, | ||||
inlineCss: true, | ||||
stripComments: true | ||||
}, | ||||
files: { | ||||
'<%= dirs.js.dest %>/rhodecode-components.html': '<%= dirs.js.src %>/components/shared-components.html' | ||||
} | ||||
} | ||||
r1 | } | |||
}); | ||||
grunt.loadNpmTasks('grunt-contrib-less'); | ||||
grunt.loadNpmTasks('grunt-contrib-concat'); | ||||
grunt.loadNpmTasks('grunt-contrib-watch'); | ||||
grunt.loadNpmTasks('grunt-contrib-jshint'); | ||||
r689 | grunt.loadNpmTasks('grunt-vulcanize'); | |||
grunt.loadNpmTasks('grunt-crisper'); | ||||
grunt.loadNpmTasks('grunt-contrib-copy'); | ||||
r1 | ||||
r730 | grunt.registerTask('default', ['less:production', 'less:components', 'concat:polymercss', 'copy','vulcanize', 'crisper', 'concat:dist']); | |||
r1 | }; | |||