-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGruntfile.coffee
96 lines (83 loc) · 2.1 KB
/
Gruntfile.coffee
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
module.exports = (grunt) ->
# ###
# Load package file
pkg = require './package.json'
# ###
# Load grunt tasks automatically
require('load-grunt-tasks')(grunt);
grunt.initConfig
# ###
# Package.json
pkg: pkg
# ###
# Folder configuration
config:
lib: 'lib'
src: 'src'
dist: 'dist'
# ###
# Replace
replace:
manifest:
src: '<%= config.lib %>/manifest.json'
dest: '<%= config.src %>/manifest.json'
replacements: [
{ from: '[[name]]', to: pkg.name }
{ from: '[[version]]', to: pkg.version }
{ from: '[[description]]', to: pkg.description }
]
# ###
# Copy
copy:
dev:
expand: true
cwd: '<%= config.lib %>/'
src: ['**/*', '!**/assets/**']
dest: '<%= config.src %>/'
dist:
{}
# ###
# Coffeescript
coffee:
compile:
expand: true
cwd: '<%= config.lib %>/scripts/'
src: '*.coffee'
dest: '<%= config.src %>/'
ext: '.js'
# ###
# Uglify
uglify:
dist:
expand: true
cwd: '<%= config.src %>'
src: '*.js'
dest: '<%= config.dist %>'
# ###
# Watch
watch:
manifest:
files: ['<%= config.lib %>/manifest.json']
tasks: ['replace:manifest']
coffee:
files: ['<%= config.lib %>/scripts/*.coffee']
tasks: ['coffee']
# ###
# Development
grunt.registerTask 'dev', [
'copy'
'coffee'
'replace'
'watch'
]
# ###
# Distribution
grunt.registerTask 'dist', [
'coffee'
'uglify'
]
# ###
# Default
grunt.registerTask 'default', [
'dev'
]