-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGruntfile.js
More file actions
105 lines (92 loc) · 2.42 KB
/
Gruntfile.js
File metadata and controls
105 lines (92 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
var path = require('path');
var webpack = require('webpack');
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
headline: '<%= pkg.name %> v<%= pkg.version %> (<%= grunt.template.today("ddd, d mmm yyyy hh:MM:ss") %>)',
license: grunt.file.read('LICENSE'),
banner: '/*! <%= headline %>\n\
\n\
<%= pkg.description %>\n\
@module <%= pkg.name %>\n\
@author <%= pkg.contributors[0].name %> <<%= pkg.contributors[0].email %>>\n\
@license <%= pkg.license %>\n\
\n\
<%= license %>\n\
*/\n\n',
clean: {
default: {
src: ['lib']
}
},
jshint: {
options: {
jshintrc: true
},
es6: ['src/**/*.js']
},
webpack: {
compile: {
// webpack options
entry : './src/index.js',
output : {
path : './lib',
filename : '<%= pkg.name %>.js',
library: 'Timeously',
libraryTarget: 'umd',
sourceMapFilename: '[file].map',
umdNamedDefine: true
},
devtool: 'source-map',
externals: {
'moment-timezone': 'moment-timezone'
},
module : {
loaders: [
{
loader : 'json-loader',
test: /\.json$/
},
{
loader : 'babel-loader',
test: /\.js$/,
// Skip any files outside of your project's `src` directory
exclude: [
path.resolve(__dirname, 'node_modules')
]
}
]
},
plugins: [
new webpack.BannerPlugin('<%= banner %>', { raw: true })
]
}
},
uglify: {
compile: {
options: {
banner: '/*! <%= headline %> */',
mangle: true,
report: 'gzip',
sourceMap: true,
sourceMapIn: 'lib/<%= pkg.name %>.js.map'
},
files: { 'lib/<%= pkg.name %>.min.js': 'lib/<%= pkg.name %>.js' }
}
},
mochaTest: {
run: {
options: {
reporter: 'spec'
},
src: ['test/**/*.js']
}
}
});
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-webpack');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-mocha-test');
grunt.registerTask('default', ['clean', 'jshint', 'webpack', 'uglify', 'mochaTest']);
};