UNPKG

2.75 kBJavaScriptView Raw
1'use strict';
2/* eslint-env node */
3
4const buble = require('@rollup/plugin-buble');
5const nodeResolve = require('@rollup/plugin-node-resolve').nodeResolve;
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 globals: {
44 vue: 'Vue',
45 lodash: '_'
46 }
47 },
48 firetruss: {
49 options: {
50 format: 'umd',
51 name: 'Truss',
52 plugins: [
53 commonjs(),
54 buble({
55 transforms: {
56 dangerousForOf: true
57 }
58 }),
59 nodeResolve({
60 resolveOnly: ['performance-now']
61 })
62 ]
63 },
64 files: {
65 'dist/firetruss.umd.js': ['src/Truss.js']
66 }
67 },
68 firetrussnext: {
69 options: {
70 format: 'es',
71 plugins: [
72 commonjs(),
73 buble({
74 transforms: {
75 dangerousForOf: true
76 }
77 }),
78 nodeResolve({
79 resolveOnly: ['bogus'] // leaving the array empty ignores the option
80 })
81 ],
82 },
83 files: {
84 'dist/firetruss.es2015.js': ['src/Truss.js']
85 }
86 }
87 },
88
89 uglify: {
90 options: {
91 mangle: true,
92 compress: true,
93 sourceMap: true,
94 sourceMapIn: src => src + '.map',
95 sourceMapName: dest => dest + '.map',
96 },
97 firetruss: {
98 src: 'dist/firetruss.umd.js',
99 dest: 'dist/firetruss.umd.min.js'
100 }
101 },
102
103 gitadd: {
104 dist: {
105 src: 'dist/*'
106 }
107 },
108
109 watch: {
110 dev: {
111 files: ['src/**/*.js'],
112 tasks: ['default'],
113 options: {spawn: false}
114 }
115 },
116
117 release: {
118 options: {
119 additionalFiles: ['bower.json'],
120 afterBump: ['replace --release=<%= version %>'],
121 beforeRelease: ['default'],
122 afterRelease: ['exec:reset']
123 }
124 },
125
126 exec: {
127 reset: 'git reset --hard'
128 }
129
130 });
131
132 grunt.registerTask('default', [
133 'eslint', 'clean:dist', 'rollup', 'uglify', 'gitadd'
134 ]);
135
136};