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
|
|
}
|