ea7c1e1dcf
* Add support for SCSS includePaths * Support sassOptions instead of just includePaths Co-authored-by: Tim Neutkens <timneutkens@me.com> Co-authored-by: Joe Haddad <joe.haddad@zeit.co>
45 lines
1 KiB
TypeScript
45 lines
1 KiB
TypeScript
import webpack from 'webpack'
|
|
import { base } from './blocks/base'
|
|
import { css } from './blocks/css'
|
|
import { ConfigurationContext, pipe } from './utils'
|
|
|
|
export async function build(
|
|
config: webpack.Configuration,
|
|
{
|
|
rootDirectory,
|
|
customAppFile,
|
|
isDevelopment,
|
|
isServer,
|
|
hasSupportCss,
|
|
hasSupportScss,
|
|
assetPrefix,
|
|
sassOptions,
|
|
}: {
|
|
rootDirectory: string
|
|
customAppFile: string | null
|
|
isDevelopment: boolean
|
|
isServer: boolean
|
|
hasSupportCss: boolean
|
|
hasSupportScss: boolean
|
|
assetPrefix: string
|
|
sassOptions: any
|
|
}
|
|
): Promise<webpack.Configuration> {
|
|
const ctx: ConfigurationContext = {
|
|
rootDirectory,
|
|
customAppFile,
|
|
isDevelopment,
|
|
isProduction: !isDevelopment,
|
|
isServer,
|
|
isClient: !isServer,
|
|
assetPrefix: assetPrefix
|
|
? assetPrefix.endsWith('/')
|
|
? assetPrefix.slice(0, -1)
|
|
: assetPrefix
|
|
: '',
|
|
sassOptions,
|
|
}
|
|
|
|
const fn = pipe(base(ctx), css(hasSupportCss, hasSupportScss, ctx))
|
|
return fn(config)
|
|
}
|