1 | 'use strict';
|
2 |
|
3 |
|
4 | const buble = require('@rollup/plugin-buble');
|
5 | const nodeResolve = require('@rollup/plugin-node-resolve').nodeResolve;
|
6 | const commonjs = require('@rollup/plugin-commonjs');
|
7 |
|
8 | module.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']
|
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 | };
|