1 | path = require 'path'
|
2 |
|
3 | module.exports = (grunt) ->
|
4 | require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks)
|
5 |
|
6 | grunt.initConfig
|
7 | pkg: grunt.file.readJSON('package.json')
|
8 | regarde:
|
9 | jasmine_node:
|
10 | files: [
|
11 | 'src/**/*.coffee'
|
12 | 'spec/*.coffee'
|
13 | 'spec/**/*.json'
|
14 | 'spec/**/*.haml'
|
15 | 'spec/**/*.html'
|
16 | ]
|
17 | tasks: ['jasmine_node']
|
18 | spawn: true
|
19 | jasmine_node:
|
20 | specNameMatcher: '_spec'
|
21 | extensions: 'coffee'
|
22 | projectRoot: '.'
|
23 | replace:
|
24 | version:
|
25 | src: ['dist/compiler/hamlcoffee.js']
|
26 | dest: 'dist/compiler/hamlcoffee.js'
|
27 | replacements: [
|
28 | {
|
29 | from: "require('../package.json').version"
|
30 | to: "'<%= pkg.version %>'"
|
31 | }
|
32 | ]
|
33 | changelog:
|
34 | src: ['CHANGELOG.md']
|
35 | dest: 'CHANGELOG.md'
|
36 | replacements: [
|
37 | {
|
38 | from: "## Master"
|
39 | to: "## Version <%= pkg.version %>, <%= grunt.template.today('mmmm dd, yyyy') %>"
|
40 | }
|
41 | ]
|
42 | uglify:
|
43 | dist:
|
44 | files:
|
45 | 'dist/compiler/hamlcoffee.min.js': ['dist/compiler/hamlcoffee.js']
|
46 | release:
|
47 | bump: false
|
48 | file: 'package.json CHANGELOG.md dist/compiler/hamlcoffee.js dist/compiler/hamlcoffee.min.js'
|
49 |
|
50 |
|
51 |
|
52 |
|
53 |
|
54 |
|
55 | grunt.registerTask 'browserify', 'Create the browser distribution', ->
|
56 | browserify = require('browserify')()
|
57 | browserify.ignore '../package.json'
|
58 | browserify.ignore 'coffee-script'
|
59 | browserify.require "#{ __dirname }/src/haml-coffee.coffee"
|
60 | browserify.require "#{ __dirname }/src/hamlc.coffee"
|
61 | grunt.file.write 'dist/compiler/hamlcoffee.js', browserify.bundle()
|
62 |
|
63 | grunt.registerTask 'watch', [
|
64 | 'regarde'
|
65 | ]
|
66 |
|
67 | grunt.registerTask 'test', [
|
68 | 'jasmine_node'
|
69 | ]
|
70 |
|
71 | grunt.registerTask 'dist', 'Create the browser distribution', [
|
72 | 'browserify'
|
73 | 'replace:version'
|
74 | 'uglify:dist'
|
75 | ]
|
76 |
|
77 | grunt.registerTask 'publish', 'Publish a new version', [
|
78 | 'jasmine_node'
|
79 | 'dist'
|
80 | 'replace:changelog'
|
81 | 'release:patch'
|
82 | ]
|
83 |
|
84 | grunt.registerTask 'default', ['watch']
|