UNPKG

3.16 kBJavaScriptView Raw
1var fs = require('fs');
2
3module.exports = function(grunt) {
4
5 var minifiedFiles = {
6 'min/numeral.min.js' : [
7 'numeral.js'
8 ],
9 'min/languages.min.js': [
10 'languages.js'
11 ]
12 };
13
14 // all the lang files need to be added manually
15 fs.readdirSync('./languages').forEach(function (path) {
16 var file = path.slice(0, -3),
17 destination = 'min/languages/' + file + '.min.js',
18 src = ['languages/' + path];
19
20 minifiedFiles[destination] = src;
21 });
22
23 grunt.initConfig({
24 mochaTest : {
25 all: [
26 'tests/numeral/*.js',
27 'tests/languages/*.js'
28 ]
29 },
30 karma: {
31 options: {
32 files: [
33 'numeral.js',
34 'languages/*.js',
35 'tests/numeral/*.js',
36 'tests/languages/*.js'
37 ],
38 frameworks: [
39 'mocha',
40 'chai'
41 ],
42 singleRun: true,
43 autoWatch: false
44 },
45 local: {
46 browsers: [
47 'Chrome',
48 'Firefox'
49 ]
50 },
51 ci: {
52 configFile: 'karma-ci.conf.js'
53 }
54 },
55 uglify: {
56 my_target: {
57 files: minifiedFiles
58 },
59 options: {
60 preserveComments: 'some'
61 }
62 },
63 concat: {
64 languages: {
65 src: [
66 'languages/*.js'
67 ],
68 dest: 'languages.js'
69 }
70 },
71 jshint: {
72 all: [
73 'Gruntfile.js',
74 'numeral.js',
75 'languages/*.js'
76 ],
77 options: {
78 'node': true,
79 'browser': true,
80 'curly': true,
81 'devel': false,
82 'eqeqeq': true,
83 'eqnull': true,
84 'newcap': true,
85 'noarg': true,
86 'onevar': true,
87 'undef': true,
88 'sub': true,
89 'strict': false,
90 'quotmark': 'single'
91 }
92 }
93 });
94
95 grunt.loadNpmTasks('grunt-contrib-uglify');
96 grunt.loadNpmTasks('grunt-contrib-jshint');
97 grunt.loadNpmTasks('grunt-contrib-concat');
98 grunt.loadNpmTasks('grunt-mocha-test');
99 grunt.loadNpmTasks('grunt-karma');
100
101 grunt.registerTask('default', [
102 'test'
103 ]);
104
105 grunt.registerTask('test', [
106 'jshint',
107 'mochaTest',
108 'karma:local'
109 ]);
110
111 grunt.registerTask('test:npm', [
112 'jshint',
113 'mochaTest'
114 ]);
115
116 grunt.registerTask('test:browser', [
117 'jshint',
118 'karma:local'
119 ]);
120
121 // P
122 grunt.registerTask('build', [
123 'concat',
124 'uglify'
125 ]);
126
127 // Travis CI task.
128 grunt.registerTask('travis', [
129 'jshint',
130 'mochaTest',
131 'karma:ci'
132 ]);
133};