grunt: config lives in separate json file so we can easly import and manipulate it when required
This commit is contained in:
parent
edd8d0bd89
commit
6678ef2bb3
2 changed files with 189 additions and 183 deletions
186
Gruntfile.js
186
Gruntfile.js
|
|
@ -1,187 +1,7 @@
|
|||
var gruntConfig = require('./grunt_config.json');
|
||||
|
||||
module.exports = function(grunt) {
|
||||
grunt.initConfig({
|
||||
|
||||
dirs: {
|
||||
css: "rhodecode/public/css",
|
||||
js: {
|
||||
"src": "rhodecode/public/js/src",
|
||||
"dest": "rhodecode/public/js"
|
||||
}
|
||||
},
|
||||
copy: {
|
||||
main: {
|
||||
expand: true,
|
||||
cwd: 'bower_components',
|
||||
src: 'webcomponentsjs/webcomponents-lite.js',
|
||||
dest: '<%= dirs.js.dest %>/vendors',
|
||||
},
|
||||
},
|
||||
concat: {
|
||||
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
|
||||
},
|
||||
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',
|
||||
'<%= dirs.js.src %>/i18n_utils.js',
|
||||
'<%= dirs.js.src %>/deform.js',
|
||||
|
||||
// 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',
|
||||
'<%= dirs.js.src %>/plugins/jquery.mark.js',
|
||||
'<%= dirs.js.src %>/plugins/jquery.timeago.js',
|
||||
'<%= dirs.js.src %>/plugins/jquery.timeago-extension.js',
|
||||
|
||||
// Select2
|
||||
'<%= dirs.js.src %>/select2/select2.js',
|
||||
|
||||
// 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',
|
||||
'<%= dirs.js.src %>/rhodecode/utils/topics.js',
|
||||
|
||||
// Rhodecode widgets
|
||||
'<%= dirs.js.src %>/rhodecode/widgets/multiselect.js',
|
||||
|
||||
// Rhodecode components
|
||||
'<%= dirs.js.src %>/rhodecode/init.js',
|
||||
'<%= dirs.js.src %>/rhodecode/connection_controller.js',
|
||||
'<%= 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',
|
||||
'<%= dirs.js.src %>/rhodecode/utils/notifications.js',
|
||||
'<%= dirs.js.src %>/rhodecode/appenlight.js',
|
||||
// Rhodecode main module
|
||||
'<%= dirs.js.src %>/rhodecode.js',
|
||||
],
|
||||
dest: '<%= dirs.js.dest %>/scripts.js',
|
||||
nonull: true
|
||||
}
|
||||
},
|
||||
crisper: {
|
||||
dist: {
|
||||
options: {
|
||||
cleanup: false,
|
||||
onlySplit: true
|
||||
},
|
||||
src: '<%= dirs.js.dest %>/rhodecode-components.html',
|
||||
dest: '<%= dirs.js.dest %>/rhodecode-components.js'
|
||||
}
|
||||
},
|
||||
less: {
|
||||
development: {
|
||||
options: {
|
||||
compress: false,
|
||||
yuicompress: false,
|
||||
optimization: 0
|
||||
},
|
||||
files: {
|
||||
"<%= dirs.css %>/style.css": "<%= dirs.css %>/main.less",
|
||||
"<%= dirs.css %>/style-polymer.css": "<%= dirs.css %>/polymer.less"
|
||||
}
|
||||
},
|
||||
production: {
|
||||
options: {
|
||||
compress: true,
|
||||
yuicompress: true,
|
||||
optimization: 2
|
||||
},
|
||||
files: {
|
||||
"<%= dirs.css %>/style.css": "<%= dirs.css %>/main.less",
|
||||
"<%= dirs.css %>/style-polymer.css": "<%= dirs.css %>/polymer.less"
|
||||
}
|
||||
},
|
||||
components: {
|
||||
files: [{
|
||||
cwd: '<%= dirs.js.src %>/components/',
|
||||
dest: '<%= dirs.js.src %>/components/',
|
||||
src: ['**/*.less'],
|
||||
expand: true,
|
||||
ext: '.css'
|
||||
}]
|
||||
}
|
||||
},
|
||||
|
||||
watch: {
|
||||
less: {
|
||||
files: ["<%= dirs.css %>/**/*.less"],
|
||||
tasks: ["less:development", 'less:components', 'concat:polymercss', "vulcanize"]
|
||||
},
|
||||
js: {
|
||||
files: ["<%= dirs.js.src %>/**/*.js", "<%= dirs.js.src %>/components/**/*.html"],
|
||||
tasks: ['less:components', 'concat:polymercss', "vulcanize", 'crisper', "concat:dist"]
|
||||
}
|
||||
},
|
||||
|
||||
jshint: {
|
||||
rhodecode: {
|
||||
src: '<%= dirs.js.src %>/rhodecode/**/*.js',
|
||||
options: {
|
||||
jshintrc: '.jshintrc'
|
||||
}
|
||||
}
|
||||
},
|
||||
vulcanize: {
|
||||
default: {
|
||||
options: {
|
||||
abspath: '',
|
||||
inlineScripts: true,
|
||||
inlineCss: true,
|
||||
stripComments: true
|
||||
},
|
||||
files: {
|
||||
'<%= dirs.js.dest %>/rhodecode-components.html': '<%= dirs.js.src %>/components/shared-components.html'
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
grunt.initConfig(gruntConfig);
|
||||
|
||||
grunt.loadNpmTasks('grunt-contrib-less');
|
||||
grunt.loadNpmTasks('grunt-contrib-concat');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue