mirror of https://gitee.com/bigwinds/arangodb
96 lines
3.0 KiB
JavaScript
96 lines
3.0 KiB
JavaScript
/*
|
|
* grunt-concat-in-order
|
|
* https://github.com/miensol/grunt-concat-in-order
|
|
*
|
|
* Copyright (c) 2013 Piotr Mionskowski
|
|
* Licensed under the MIT license.
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
module.exports = function(grunt) {
|
|
var path = require('path');
|
|
|
|
// Project configuration.
|
|
grunt.initConfig({
|
|
jshint: {
|
|
all: [
|
|
'Gruntfile.js',
|
|
'tasks/*.js',
|
|
'<%= nodeunit.tests %>'
|
|
],
|
|
options: {
|
|
jshintrc: '.jshintrc'
|
|
}
|
|
},
|
|
|
|
// Before generating any new files, remove any previously-created files.
|
|
clean: {
|
|
tests: ['tmp']
|
|
},
|
|
|
|
// Configuration to be run (and then tested).
|
|
concat_in_order: {
|
|
default_options: {
|
|
files: {
|
|
'tmp/default_options.js': ['test/default/**/*.js']
|
|
}
|
|
},
|
|
cycle_options: {
|
|
files: {
|
|
'tmp/cycle_options.js': ['test/cycle/**/*.js']
|
|
}
|
|
},
|
|
missing_options: {
|
|
files: {
|
|
'tmp/missing_options.js': ['test/missing/**/*.js']
|
|
}
|
|
},
|
|
filebased_options: {
|
|
files: {
|
|
'tmp/filebased_options.js': ['test/filebased/AUsingBaseBAndBaseA.js']
|
|
},
|
|
options: {
|
|
extractRequired: function(filepath, filecontent) {
|
|
var workingdir = path.normalize(filepath).split(path.sep);
|
|
workingdir.pop();
|
|
|
|
var deps = this.getMatches(/\*\s*@depend\s(.*\.js)/g, filecontent);
|
|
deps.forEach(function(dep, i) {
|
|
var dependency = workingdir.concat([dep]);
|
|
deps[i] = path.join.apply(null, dependency);
|
|
});
|
|
return deps;
|
|
},
|
|
extractDeclared: function(filepath) {
|
|
return [filepath];
|
|
},
|
|
onlyConcatRequiredFiles: true
|
|
}
|
|
}
|
|
},
|
|
|
|
// Unit tests.
|
|
nodeunit: {
|
|
tests: ['test/*_test.js']
|
|
}
|
|
|
|
});
|
|
|
|
// Actually load this plugin's task(s).
|
|
grunt.loadTasks('tasks');
|
|
|
|
// These plugins provide necessary tasks.
|
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
|
grunt.loadNpmTasks('grunt-contrib-clean');
|
|
grunt.loadNpmTasks('grunt-contrib-nodeunit');
|
|
|
|
// Whenever the "test" task is run, first clean the "tmp" dir, then run this
|
|
// plugin's task(s), then test the result.
|
|
grunt.registerTask('test', ['clean', 'concat_in_order:default_options', 'concat_in_order:filebased_options', 'nodeunit']);
|
|
|
|
// By default, lint and run all tests.
|
|
grunt.registerTask('default', ['jshint', 'test']);
|
|
|
|
};
|