UNPKG

2.78 kBJavaScriptView Raw
1'use strict';
2/* eslint-env node */
3
4const buble = require('rollup-plugin-buble');
5const nodeResolve = require('rollup-plugin-node-resolve');
6const commonjs = require('rollup-plugin-commonjs');
7
8module.exports = function(grunt) {
9
10 require('load-grunt-tasks')(grunt);
11
12 grunt.initConfig({
13 pkg: grunt.file.readJSON('package.json'),
14 ext: {version: 'dev'},
15
16 clean: {
17 dist: ['dist']
18 },
19
20 replace: {
21 version: {
22 src: 'src/Truss.js',
23 overwrite: true,
24 replacements: [{
25 from: /const VERSION = '.*?';/,
26 to: () => `const VERSION = '${grunt.option('release')}';`
27 }]
28 }
29 },
30
31 eslint: {
32 all: {
33 options: {
34 maxWarnings: 0
35 },
36 src: ['src/**/*.js'],
37 }
38 },
39
40 rollup: {
41 options: {
42 sourceMap: true,
43 sourceMapRelativePaths: true,
44 globals: {
45 vue: 'Vue',
46 lodash: '_'
47 }
48 },
49 firetruss: {
50 options: {
51 format: 'umd',
52 moduleName: 'Truss',
53 plugins: [
54 commonjs(),
55 buble({
56 transforms: {
57 dangerousForOf: true
58 }
59 }),
60 nodeResolve({
61 jsnext: true,
62 skip: ['vue', 'lodash']
63 })
64 ]
65 },
66 files: {
67 'dist/firetruss.umd.js': ['src/Truss.js']
68 }
69 },
70 firetrussnext: {
71 options: {
72 format: 'es'
73 },
74 plugins: [
75 commonjs(),
76 buble({
77 transforms: {
78 dangerousForOf: true
79 }
80 }),
81 nodeResolve({
82 jsnext: true,
83 skip: ['vue', 'lodash', 'performance-now']
84 })
85 ],
86 files: {
87 'dist/firetruss.es2015.js': ['src/Truss.js']
88 }
89 }
90 },
91
92 uglify: {
93 options: {
94 mangle: true,
95 compress: true,
96 sourceMap: true,
97 sourceMapIn: src => src + '.map',
98 sourceMapName: dest => dest + '.map',
99 },
100 firetruss: {
101 src: 'dist/firetruss.umd.js',
102 dest: 'dist/firetruss.umd.min.js'
103 }
104 },
105
106 gitadd: {
107 dist: {
108 src: 'dist/*'
109 }
110 },
111
112 watch: {
113 dev: {
114 files: ['src/**/*.js'],
115 tasks: ['default'],
116 options: {spawn: false}
117 }
118 },
119
120 release: {
121 options: {
122 additionalFiles: ['bower.json'],
123 afterBump: ['replace --release=<%= version %>'],
124 beforeRelease: ['default'],
125 afterRelease: ['exec:reset']
126 }
127 },
128
129 exec: {
130 reset: 'git reset --hard'
131 }
132
133 });
134
135 grunt.registerTask('default', [
136 'eslint', 'clean:dist', 'rollup', 'uglify', 'gitadd'
137 ]);
138
139};