111 lines
2.9 KiB
Plaintext
Executable File
111 lines
2.9 KiB
Plaintext
Executable File
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
|
|
// For performance use one level down: 'name/{,*/}*.js'
|
|
// If you want to recursively match all subfolders, use: 'name/**/*.js'
|
|
|
|
module.exports = function (grunt) {
|
|
'use strict';
|
|
|
|
var _ = require('underscore'),
|
|
path = require('path'),
|
|
filesRouter = require('./dev/tools/grunt/tools/files-router'),
|
|
configDir = './dev/tools/grunt/configs',
|
|
tasks = grunt.file.expand('./dev/tools/grunt/tasks/*'),
|
|
themes;
|
|
|
|
filesRouter.set('themes', 'dev/tools/grunt/configs/themes');
|
|
themes = filesRouter.get('themes');
|
|
|
|
tasks = _.map(tasks, function (task) {
|
|
return task.replace('.js', '');
|
|
});
|
|
tasks.push('time-grunt');
|
|
tasks.forEach(function (task) {
|
|
require(task)(grunt);
|
|
});
|
|
|
|
require('load-grunt-config')(grunt, {
|
|
configPath: path.join(__dirname, configDir),
|
|
init: true,
|
|
jitGrunt: {
|
|
staticMappings: {
|
|
usebanner: 'grunt-banner'
|
|
}
|
|
}
|
|
});
|
|
|
|
_.each({
|
|
/**
|
|
* Assembling tasks.
|
|
* ToDo: define default tasks.
|
|
*/
|
|
default: function () {
|
|
grunt.log.subhead('I\'m default task and at the moment I\'m empty, sorry :/');
|
|
},
|
|
|
|
/**
|
|
* Production preparation task.
|
|
*/
|
|
prod: function (component) {
|
|
var tasks = [
|
|
'less',
|
|
'cssmin',
|
|
'usebanner'
|
|
].map(function (task) {
|
|
return task + ':' + component;
|
|
});
|
|
|
|
if (typeof component === 'undefined') {
|
|
grunt.log.subhead('Tip: Please make sure that u specify prod subtask. By default prod task do nothing');
|
|
} else {
|
|
grunt.task.run(tasks);
|
|
}
|
|
},
|
|
|
|
/**
|
|
* Refresh themes.
|
|
*/
|
|
refresh: function () {
|
|
var tasks = [
|
|
'clean',
|
|
'exec:all'
|
|
];
|
|
_.each(themes, function (theme, name) {
|
|
tasks.push('less:' + name);
|
|
});
|
|
grunt.task.run(tasks);
|
|
},
|
|
|
|
/**
|
|
* Documentation
|
|
*/
|
|
documentation: [
|
|
'replace:documentation',
|
|
'less:documentation',
|
|
'styledocco:documentation',
|
|
'usebanner:documentationCss',
|
|
'usebanner:documentationLess',
|
|
'usebanner:documentationHtml',
|
|
'clean:var',
|
|
'clean:pub'
|
|
],
|
|
|
|
'legacy-build': [
|
|
'mage-minify:legacy'
|
|
],
|
|
|
|
spec: function (theme) {
|
|
var runner = require('./dev/tests/js/jasmine/spec_runner');
|
|
|
|
runner.init(grunt, { theme: theme });
|
|
|
|
grunt.task.run(runner.getTasks());
|
|
}
|
|
}, function (task, name) {
|
|
grunt.registerTask(name, task);
|
|
});
|
|
};
|