rsnext/packages/next/build/webpack/loaders/next-minify-loader.ts
2019-04-28 15:35:40 -05:00

23 lines
602 B
TypeScript

import loaderUtils from 'loader-utils'
import { loader } from 'webpack'
import minify from '../plugins/terser-webpack-plugin/src/minify'
const nextMiniferLoader: loader.Loader = function(source) {
this.cacheable()
const options = loaderUtils.getOptions(this) || {}
const { error, code } = minify({
file: 'noop',
input: source as string,
terserOptions: { ...options.terserOptions, sourceMap: false },
})
if (error) {
this.callback(new Error(`Error from Terser: ${error.message}`))
return
}
this.callback(undefined, code)
return
}
export default nextMiniferLoader