mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
231 lines
7.2 KiB
JavaScript
231 lines
7.2 KiB
JavaScript
|
module.exports = function (grunt) {
|
||
|
var embedOption = grunt.option('embedLocales'),
|
||
|
embedLocaleDest = embedOption ?
|
||
|
'min/moment-with-customlocales.js' :
|
||
|
'min/moment-with-locales.js',
|
||
|
embedLocaleSrc = 'locale/*.js';
|
||
|
|
||
|
if (embedOption && embedOption.match(/,/)) {
|
||
|
embedLocaleSrc = 'locale/{' + embedOption + '}.js';
|
||
|
}
|
||
|
else if (embedOption) {
|
||
|
embedLocaleSrc = 'locale/' + embedOption + '.js';
|
||
|
}
|
||
|
|
||
|
grunt.initConfig({
|
||
|
pkg: grunt.file.readJSON('package.json'),
|
||
|
concat : {
|
||
|
locales: {
|
||
|
src: 'locale/*.js',
|
||
|
dest: 'min/locales.js'
|
||
|
},
|
||
|
tests: {
|
||
|
src: [
|
||
|
'test/browser-prefix.js',
|
||
|
'test/moment/*.js',
|
||
|
'test/locale/*.js',
|
||
|
'test/browser-suffix.js'
|
||
|
],
|
||
|
dest: 'min/tests.js'
|
||
|
}
|
||
|
},
|
||
|
env : {
|
||
|
sauceLabs : (grunt.file.exists('.sauce-labs.creds') ?
|
||
|
grunt.file.readJSON('.sauce-labs.creds') : {})
|
||
|
},
|
||
|
karma : {
|
||
|
options: {
|
||
|
frameworks: ['nodeunit'],
|
||
|
files: [
|
||
|
'min/moment-with-locales.js',
|
||
|
'min/tests.js',
|
||
|
'test/browser.js'
|
||
|
],
|
||
|
sauceLabs: {
|
||
|
startConnect: true,
|
||
|
testName: 'MomentJS'
|
||
|
},
|
||
|
customLaunchers: {
|
||
|
slChromeWinXp: {
|
||
|
base: 'SauceLabs',
|
||
|
browserName: 'chrome',
|
||
|
platform: 'Windows XP'
|
||
|
},
|
||
|
slIe9Win7: {
|
||
|
base: 'SauceLabs',
|
||
|
browserName: 'internet explorer',
|
||
|
platform: 'Windows 7',
|
||
|
version: '9'
|
||
|
},
|
||
|
slIe8Win7: {
|
||
|
base: 'SauceLabs',
|
||
|
browserName: 'internet explorer',
|
||
|
platform: 'Windows 7',
|
||
|
version: '8'
|
||
|
},
|
||
|
slFfLinux: {
|
||
|
base: 'SauceLabs',
|
||
|
browserName: 'firefox',
|
||
|
platform: 'Linux'
|
||
|
},
|
||
|
slSafariOsx: {
|
||
|
base: 'SauceLabs',
|
||
|
browserName: 'safari',
|
||
|
platform: 'OS X 10.8'
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
server: {
|
||
|
browsers: []
|
||
|
},
|
||
|
chrome: {
|
||
|
singleRun: true,
|
||
|
browsers: ['Chrome']
|
||
|
},
|
||
|
firefox: {
|
||
|
singleRun: true,
|
||
|
browsers: ['Firefox']
|
||
|
},
|
||
|
sauce: {
|
||
|
options: {reporters: ['dots']},
|
||
|
singleRun: true,
|
||
|
browsers: [
|
||
|
'slChromeWinXp',
|
||
|
'slIe9Win7',
|
||
|
'slIe8Win7',
|
||
|
'slFfLinux',
|
||
|
'slSafariOsx'
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
|
||
|
uglify : {
|
||
|
main: {
|
||
|
files: {
|
||
|
'min/moment-with-locales.min.js' : 'min/moment-with-locales.js',
|
||
|
'min/locales.min.js' : 'min/locales.js',
|
||
|
'min/moment.min.js' : 'moment.js'
|
||
|
}
|
||
|
},
|
||
|
customlocales: {
|
||
|
files: {
|
||
|
'min/moment-with-customlocales.min.js' : 'min/moment-with-customlocales.js'
|
||
|
}
|
||
|
},
|
||
|
options: {
|
||
|
mangle: true,
|
||
|
compress: {
|
||
|
dead_code: false // jshint ignore:line
|
||
|
},
|
||
|
output: {
|
||
|
ascii_only: true // jshint ignore:line
|
||
|
},
|
||
|
report: 'min',
|
||
|
preserveComments: 'some'
|
||
|
}
|
||
|
},
|
||
|
nodeunit : {
|
||
|
all : ['test/moment/**/*.js', 'test/locale/**/*.js']
|
||
|
},
|
||
|
jshint: {
|
||
|
all: [
|
||
|
'Gruntfile.js', 'moment.js', 'locale/**/*.js', 'test/**/*.js',
|
||
|
'!test/browser*.js'
|
||
|
],
|
||
|
options: {
|
||
|
'node' : true,
|
||
|
'browser' : true,
|
||
|
'boss' : false,
|
||
|
'curly' : true,
|
||
|
'debug' : false,
|
||
|
'devel' : false,
|
||
|
'eqeqeq' : true,
|
||
|
'eqnull' : true,
|
||
|
'evil' : false,
|
||
|
'forin' : false,
|
||
|
'immed' : false,
|
||
|
'laxbreak' : false,
|
||
|
'newcap' : true,
|
||
|
'noarg' : true,
|
||
|
'noempty' : false,
|
||
|
'nonew' : false,
|
||
|
'onevar' : true,
|
||
|
'plusplus' : false,
|
||
|
'regexp' : false,
|
||
|
'undef' : true,
|
||
|
'sub' : true,
|
||
|
'strict' : false,
|
||
|
'white' : true,
|
||
|
'es3' : true,
|
||
|
'camelcase' : true,
|
||
|
'globals': {
|
||
|
'define': false
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
jscs: {
|
||
|
all: [
|
||
|
'Gruntfile.js', 'moment.js', 'locale/**/*.js',
|
||
|
'test/**/*.js', '!test/browser*.js'
|
||
|
],
|
||
|
options: {
|
||
|
config: '.jscs.json'
|
||
|
}
|
||
|
},
|
||
|
watch : {
|
||
|
test : {
|
||
|
files : [
|
||
|
'moment.js',
|
||
|
'locale/*.js',
|
||
|
'test/**/*.js'
|
||
|
],
|
||
|
tasks: ['nodeunit']
|
||
|
},
|
||
|
jshint : {
|
||
|
files : '<%= jshint.all %>',
|
||
|
tasks: ['jshint']
|
||
|
}
|
||
|
},
|
||
|
embedLocales: {
|
||
|
moment: 'moment.js',
|
||
|
dest: embedLocaleDest,
|
||
|
targetLocales: embedLocaleSrc
|
||
|
},
|
||
|
benchmark: {
|
||
|
all: {
|
||
|
src: ['benchmarks/*.js']
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
grunt.loadTasks('tasks');
|
||
|
|
||
|
// These plugins provide necessary tasks.
|
||
|
require('load-grunt-tasks')(grunt);
|
||
|
|
||
|
// Default task.
|
||
|
grunt.registerTask('default', ['jshint', 'jscs', 'nodeunit']);
|
||
|
|
||
|
// test tasks
|
||
|
grunt.registerTask('test', ['test:node', 'test:browser']);
|
||
|
grunt.registerTask('test:node', ['nodeunit']);
|
||
|
grunt.registerTask('test:server', ['concat', 'embedLocales', 'karma:server']);
|
||
|
grunt.registerTask('test:browser', ['concat', 'embedLocales', 'karma:chrome', 'karma:firefox']);
|
||
|
grunt.registerTask('test:sauce-browser', ['concat', 'embedLocales', 'env:sauceLabs', 'karma:sauce']);
|
||
|
grunt.registerTask('test:travis-sauce-browser', ['concat', 'embedLocales', 'karma:sauce']);
|
||
|
|
||
|
// travis build task
|
||
|
grunt.registerTask('build:travis', [
|
||
|
// code style
|
||
|
'jshint', 'jscs',
|
||
|
// node tests
|
||
|
'test:node'
|
||
|
]);
|
||
|
|
||
|
// Task to be run when releasing a new version
|
||
|
grunt.registerTask('release', [
|
||
|
'jshint', 'nodeunit', 'concat', 'embedLocales',
|
||
|
'component', 'uglify:main'
|
||
|
]);
|
||
|
};
|