|
1 |
| -'use strict'; |
2 |
| -module.exports = function ( grunt ) { |
| 1 | +module.exports = function (grunt) { |
| 2 | + require('load-grunt-tasks')(grunt); |
3 | 3 |
|
4 |
| - // load all grunt tasks matching the `grunt-*` pattern |
5 |
| - // Ref. https://npmjs.org/package/load-grunt-tasks |
6 |
| - require( 'load-grunt-tasks' )( grunt ); |
7 |
| - |
8 |
| - grunt.initConfig( { |
9 |
| - // watch for changes and trigger sass, jshint, uglify and livereload |
10 |
| - watch: { |
| 4 | + grunt.initConfig({ |
| 5 | + watch: { |
11 | 6 | sass: {
|
12 |
| - files: [ 'app/assets/admin/css/sass/**/*.{scss,sass}', 'app/assets/css/sass/**/*.{scss,sass}' ], |
13 |
| - tasks: [ 'sass' ] |
| 7 | + files: ['app/assets/admin/css/sass/**/*.{scss,sass}', 'app/assets/css/sass/**/*.{scss,sass}'], |
| 8 | + tasks: ['sass'] |
14 | 9 | },
|
15 |
| - autoprefixer: { |
16 |
| - files: [ 'app/assets/admin/css/*.css', 'app/assets/css/*css' ], |
17 |
| - tasks: [ 'autoprefixer' ] |
| 10 | + postcss: { |
| 11 | + files: ['app/assets/admin/css/*.css', 'app/assets/css/*.css'], |
| 12 | + tasks: ['shell:postcss'] |
18 | 13 | },
|
19 | 14 | js: {
|
20 |
| - files: [ '<%= uglify.frontend.src %>', '<%= uglify.backend.src %>' ], |
21 |
| - tasks: [ 'uglify' ] |
22 |
| - }, |
23 |
| - livereload: { |
24 |
| - // Here we watch the files the sass task will compile to |
25 |
| - // These files are sent to the live reload server after sass compiles to them |
26 |
| - options: { livereload: true }, |
27 |
| - files: [ '*.php', '*.css' ] |
28 |
| - } |
29 |
| - }, |
30 |
| - // sass |
31 |
| - sass: { |
32 |
| - dist: { |
33 |
| - options: { |
34 |
| - style: 'expanded', |
35 |
| - sourceMap: false |
36 |
| - }, |
37 |
| - files: { |
38 |
| - 'app/assets/admin/css/admin.css': 'app/assets/admin/css/sass/admin.scss', |
39 |
| - 'app/assets/admin/css/widget.css': 'app/assets/admin/css/sass/widget.scss', |
40 |
| - 'app/assets/css/rtmedia.css': 'app/assets/css/sass/rtmedia.scss', |
41 |
| - } |
42 |
| - }, |
43 |
| - minify: { |
44 |
| - options: { |
45 |
| - style: 'compressed', |
46 |
| - sourceMap: false |
47 |
| - }, |
48 |
| - files: { |
49 |
| - 'app/assets/admin/css/admin.min.css': 'app/assets/admin/css/sass/admin.scss', |
50 |
| - 'app/assets/admin/css/widget.min.css': 'app/assets/admin/css/sass/widget.scss', |
51 |
| - 'app/assets/css/rtmedia.min.css': 'app/assets/css/sass/rtmedia.scss', |
52 |
| - 'app/assets/css/rtm-upload-terms.min.css': 'app/assets/css/rtm-upload-terms.css', |
53 |
| - 'app/assets/admin/css/rtm-upload-terms.min.css': 'app/assets/css/rtm-upload-terms.css' |
54 |
| - } |
| 15 | + files: ['app/assets/js/rtMedia.js', 'app/assets/admin/js/scripts.js'], |
| 16 | + tasks: ['terser'] |
55 | 17 | }
|
56 | 18 | },
|
57 |
| - // autoprefixer |
58 |
| - autoprefixer: { |
59 |
| - dist: { |
60 |
| - options: { |
61 |
| - browsers: [ 'last 2 versions', 'ie 9', 'ios 6', 'android 4' ], |
62 |
| - expand: true, |
63 |
| - flatten: true |
64 |
| - }, |
65 |
| - files: { |
66 |
| - 'app/assets/admin/css/admin.css': 'app/assets/admin/css/admin.css', |
67 |
| - 'app/assets/admin/css/admin.min.css': 'app/assets/admin/css/admin.min.css', |
68 |
| - 'app/assets/admin/css/widget.css': 'app/assets/admin/css/widget.css', |
69 |
| - 'app/assets/admin/css/widget.min.css': 'app/assets/admin/css/widget.min.css', |
70 |
| - 'app/assets/css/rtmedia.css': 'app/assets/css/rtmedia.css', |
71 |
| - 'app/assets/css/rtmedia.min.css': 'app/assets/css/rtmedia.min.css' |
72 |
| - } |
73 |
| - } |
74 |
| - }, |
75 |
| - // Uglify Ref. https://npmjs.org/package/grunt-contrib-uglify |
76 |
| - uglify: { |
77 |
| - options: { |
78 |
| - banner: '/*! \n * rtMedia JavaScript Library \n * @package rtMedia \n */\n', |
79 |
| - }, |
80 |
| - frontend: { |
81 |
| - src: [ |
82 |
| - 'app/assets/js/vendors/magnific-popup.js', |
83 |
| - 'app/assets/admin/js/vendors/tabs.js', |
84 |
| - 'app/assets/js/rtMedia.js', |
85 |
| - ], |
86 |
| - dest: 'app/assets/js/rtmedia.min.js' |
87 |
| - }, |
88 |
| - rtmUploadTerms: { |
89 |
| - src: [ |
90 |
| - 'app/assets/js/rtm-upload-terms.js', |
91 |
| - ], |
92 |
| - dest: 'app/assets/js/rtm-upload-terms.min.js' |
93 |
| - }, |
94 |
| - adminUploadTerms: { |
95 |
| - src: [ |
96 |
| - 'app/assets/js/admin-upload-terms.js' |
97 |
| - ], |
98 |
| - dest: 'app/assets/js/admin-upload-terms.min.js' |
99 |
| - }, |
100 |
| - backend: { |
101 |
| - src: [ |
102 |
| - 'app/assets/admin/js/vendors/tabs.js', |
103 |
| - 'app/assets/admin/js/scripts.js', |
104 |
| - 'app/assets/admin/js/settings.js' |
105 |
| - ], |
106 |
| - dest: 'app/assets/admin/js/admin.min.js' |
107 |
| - } |
108 |
| - }, |
109 |
| - checktextdomain: { |
110 |
| - options: { |
111 |
| - text_domain: 'buddypress-media', //Specify allowed domain(s) |
112 |
| - keywords: [ //List keyword specifications |
113 |
| - '__:1,2d', |
114 |
| - '_e:1,2d', |
115 |
| - '_x:1,2c,3d', |
116 |
| - 'esc_html__:1,2d', |
117 |
| - 'esc_html_e:1,2d', |
118 |
| - 'esc_html_x:1,2c,3d', |
119 |
| - 'esc_attr__:1,2d', |
120 |
| - 'esc_attr_e:1,2d', |
121 |
| - 'esc_attr_x:1,2c,3d', |
122 |
| - '_ex:1,2c,3d', |
123 |
| - '_n:1,2,4d', |
124 |
| - '_nx:1,2,4c,5d', |
125 |
| - '_n_noop:1,2,3d', |
126 |
| - '_nx_noop:1,2,3c,4d' |
127 |
| - ] |
128 |
| - }, |
129 |
| - target: { |
130 |
| - files: [ { |
131 |
| - src: [ |
132 |
| - '*.php', |
133 |
| - '**/*.php', |
134 |
| - '!node_modules/**', |
135 |
| - '!tests/**' |
136 |
| - ], //all php |
137 |
| - expand: true |
138 |
| - } ] |
139 |
| - } |
140 |
| - }, |
141 |
| - makepot: { |
142 |
| - target: { |
143 |
| - options: { |
144 |
| - cwd: '.', // Directory of files to internationalize. |
145 |
| - domainPath: 'languages/', // Where to save the POT file. |
146 |
| - exclude: [ 'node_modules/*' ], // List of files or directories to ignore. |
147 |
| - mainFile: 'index.php', // Main project file. |
148 |
| - potFilename: 'buddypress-media.po', // Name of the POT file. |
149 |
| - potHeaders: { // Headers to add to the generated POT file. |
150 |
| - poedit: true, // Includes common Poedit headers. |
151 |
| - 'Last-Translator': 'rtMedia <[email protected]>', |
152 |
| - 'Language-Team': 'rtMedia <[email protected]>', |
153 |
| - 'report-msgid-bugs-to': 'https://rtmedia.io/support/', |
154 |
| - 'x-poedit-keywordslist': true // Include a list of all possible gettext functions. |
155 |
| - }, |
156 |
| - type: 'wp-plugin', // Type of project (wp-plugin or wp-theme). |
157 |
| - updateTimestamp: true // Whether the POT-Creation-Date should be updated without other changes. |
158 |
| - } |
159 |
| - } |
160 |
| - } |
161 | 19 |
|
162 |
| - } ); |
163 |
| - // register task |
164 |
| - grunt.registerTask( 'default', [ 'sass', 'autoprefixer', 'uglify', 'checktextdomain', 'makepot', 'watch' ] ); |
| 20 | + |
| 21 | + sass: { |
| 22 | + dist: { |
| 23 | + options: { |
| 24 | + style: 'expanded', |
| 25 | + sourceMap: false |
| 26 | + }, |
| 27 | + files: { |
| 28 | + 'app/assets/admin/css/admin.css': 'app/assets/admin/css/sass/admin.scss', |
| 29 | + 'app/assets/css/rtmedia.css': 'app/assets/css/sass/rtmedia.scss', |
| 30 | + } |
| 31 | + }, |
| 32 | + minify: { |
| 33 | + options: { |
| 34 | + style: 'compressed', |
| 35 | + sourceMap: false |
| 36 | + }, |
| 37 | + files: { |
| 38 | + 'app/assets/admin/css/admin.min.css': 'app/assets/admin/css/sass/admin.scss', |
| 39 | + 'app/assets/css/rtmedia.min.css': 'app/assets/css/sass/rtmedia.scss', |
| 40 | + } |
| 41 | + } |
| 42 | + }, |
| 43 | + |
| 44 | + shell: { |
| 45 | + postcss: { |
| 46 | + command: 'npx postcss app/assets/admin/css/*.css app/assets/css/*.css --config postcss.config.js --replace' |
| 47 | + } |
| 48 | + }, |
| 49 | + |
| 50 | + terser: { |
| 51 | + options: { |
| 52 | + format: { |
| 53 | + comments: false // Removes comments from minified files |
| 54 | + } |
| 55 | + }, |
| 56 | + frontend: { |
| 57 | + files: { |
| 58 | + 'app/assets/js/rtmedia.min.js': ['app/assets/js/rtMedia.js'] |
| 59 | + } |
| 60 | + }, |
| 61 | + backend: { |
| 62 | + files: { |
| 63 | + 'app/assets/admin/js/admin.min.js': ['app/assets/admin/js/scripts.js'] |
| 64 | + } |
| 65 | + } |
| 66 | + } |
| 67 | + }); |
| 68 | + |
| 69 | + // Register tasks |
| 70 | + grunt.registerTask('default', ['sass', 'shell:postcss', 'terser', 'watch']); |
| 71 | + grunt.registerTask('build', ['sass:minify', 'shell:postcss', 'terser']); |
165 | 72 | };
|
0 commit comments