@@ -28,6 +28,9 @@ function debug() {
28
28
}
29
29
30
30
const defaultSettings = {
31
+ optimizer : {
32
+ covertPngToJpg :true
33
+ } ,
31
34
pngquant : {
32
35
quality : '65-80' ,
33
36
speed : 4
@@ -55,13 +58,12 @@ module.exports = function (content) {
55
58
56
59
// extend default configs
57
60
const settings = { } ;
58
-
59
- settings . mozjpeg = Object . assign ( { } , defaultSettings . mozjpeg , config . mozjpeg || { } ) ;
60
- settings . pngquant = Object . assign ( { } , defaultSettings . pngquant , config . pngquant || { } ) ;
61
- settings . svgo = Object . assign ( { } , defaultSettings . svgo , config . svgo || { } ) ;
61
+ settings . optimizer = Object . assign ( { } , defaultSettings . optimizer , config . optimizer || { } ) ;
62
+ settings . mozjpeg = Object . assign ( { } , settings . optimizer , defaultSettings . mozjpeg , config . mozjpeg || { } ) ;
63
+ settings . pngquant = Object . assign ( { } , settings . optimizer , defaultSettings . pngquant , config . pngquant || { } ) ;
64
+ settings . svgo = Object . assign ( { } , settings . optimizer , defaultSettings . svgo , config . svgo || { } ) ;
62
65
63
66
// add settings to cacheKey by extension
64
- console . log ( fileExt ) ;
65
67
switch ( fileExt ) {
66
68
case 'png' :
67
69
cacheKey = getHashOf ( JSON . stringify ( [ cacheKey , settings . pngquant ] ) ) ;
@@ -88,7 +90,6 @@ module.exports = function (content) {
88
90
cache . has ( cacheKey ) ,
89
91
cache . has ( `${ cacheKey } -checksum` ) ,
90
92
] ) . then ( checks => {
91
- return promisePrepareImage . resolve ( ) ;
92
93
// if cache is not found
93
94
if ( ! checks [ 0 ] || ! checks [ 1 ] ) {
94
95
debug ( '> cache not found, optimize' ) ;
@@ -120,34 +121,20 @@ module.exports = function (content) {
120
121
streamifier . createReadStream ( content )
121
122
. pipe ( new PNG ( ) )
122
123
. on ( 'metadata' , data => {
124
+ if ( ! settings . optimizer . covertPngToJpg || data . alpha ) {
125
+ return promiseOptimizeImage . resolve ( ) ;
126
+ }
127
+
123
128
// if alpha not found - convert buffer to jpg
124
- if ( ! data . alpha ) {
125
- debug ( 'Alpha not found!' ) ;
126
- // var request = this._compilation._modules[this.request];
127
- // delete this._compilation._modules[this.request];
128
-
129
- // request.request = request.request.replace(/.png$/,'.jpg');
130
- // request.resource = request.resource.replace(/.png$/,'.jpg');
131
- // request.userRequest = request.userRequest.replace(/.png$/,'.jpg');
132
- // request.rawRequest = request.rawRequest.replace(/.png$/,'.jpg');
133
- this . resource = this . resource . replace ( / .p n g $ / , '.jpg' ) ;
134
- console . log ( this . resourcePath ) ;
135
- // console.log(this.resourcePath);
136
-
137
-
138
- // this._compilation._modules[this.request] = request;
139
-
140
- gm ( content ) . toBuffer ( 'JPG' , ( err , buffer ) => {
141
- if ( err ) {
142
- return callback ( err ) ;
143
- }
144
-
145
- content = buffer ;
146
- promiseOptimizeImage . resolve ( ) ;
147
- } ) ;
148
- } else {
129
+ this . resource = this . resource . replace ( / .p n g $ / , '.jpg' ) ;
130
+ gm ( content ) . toBuffer ( 'JPG' , ( err , buffer ) => {
131
+ if ( err ) {
132
+ return callback ( err ) ;
133
+ }
134
+
135
+ content = buffer ;
149
136
promiseOptimizeImage . resolve ( ) ;
150
- }
137
+ } ) ;
151
138
} ) ;
152
139
} else {
153
140
promiseOptimizeImage . resolve ( ) ;
0 commit comments