1 | 'use strict';
|
2 |
|
3 |
|
4 | const buble = require('rollup-plugin-buble');
|
5 | const nodeResolve = require('rollup-plugin-node-resolve');
|
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 | 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 | };
|