41 lines
		
	
	
		
			867 B
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			41 lines
		
	
	
		
			867 B
		
	
	
	
		
			JavaScript
		
	
	
	
|  | const uglify = require('uglify-js') | ||
|  | const through2 = require('through2') | ||
|  | 
 | ||
|  | /** | ||
|  |  * @description 压缩内联 wxs 脚本 | ||
|  |  */ | ||
|  | function wxs () { | ||
|  |   return through2.obj(function (file, _, callback) { | ||
|  |     if (file.isBuffer()) { | ||
|  |       file.contents = Buffer.from(file.contents.toString().replace(/<wxs(.*?)>([\s\S]+?)<\/wxs>/, (_, $1, $2) => { | ||
|  |         return `<wxs${$1}>${uglify.minify($2, { | ||
|  |           fromString: true, | ||
|  |           mangle: { | ||
|  |             toplevel: true | ||
|  |           } | ||
|  |         }).code}</wxs>` | ||
|  |       })) | ||
|  |     } | ||
|  |     this.push(file) | ||
|  |     callback() | ||
|  |   }) | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * @description 压缩 json 文件 | ||
|  |  */ | ||
|  | function json () { | ||
|  |   return through2.obj(function (file, _, callback) { | ||
|  |     if (file.isBuffer()) { | ||
|  |       file.contents = Buffer.from(JSON.stringify(JSON.parse(file.contents.toString()))) | ||
|  |     } | ||
|  |     this.push(file) | ||
|  |     callback() | ||
|  |   }) | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = { | ||
|  |   wxs, | ||
|  |   json | ||
|  | } |