Nuxt/packages/bridge/src/vite/css.ts
Anthony Fu 46f858dd82
chore: move nuxt-vite to bridge (#1180)
Co-authored-by: Xin Du (Clark) <clark.duxin@gmail.com>
Co-authored-by: pooya parsa <pyapar@gmail.com>
2021-10-26 14:59:05 +02:00

46 lines
1.1 KiB
TypeScript

import createResolver from 'postcss-import-resolver'
import defu from 'defu'
import type { Nuxt, ViteOptions } from './types'
// Ref: https://github.com/nuxt/nuxt.js/blob/dev/packages/webpack/src/utils/postcss.js
export function resolveCSSOptions (nuxt: Nuxt): ViteOptions['css'] {
const css: ViteOptions['css'] = {
postcss: {
plugins: []
}
}
const plugins = defu(nuxt.options.build.postcss.plugins, {
// https://github.com/postcss/postcss-import
'postcss-import': {
resolve: createResolver({
alias: { ...nuxt.options.alias },
modules: [
nuxt.options.srcDir,
nuxt.options.rootDir,
...nuxt.options.modulesDir
]
})
},
// https://github.com/postcss/postcss-url
'postcss-url': {},
// https://github.com/csstools/postcss-preset-env
'postcss-preset-env': nuxt.options.build.postcss.preset || {}
})
for (const name in plugins) {
const opts = plugins[name]
if (!opts) {
continue
}
const plugin = nuxt.resolver.requireModule(name)
// @ts-ignore
css.postcss.plugins.push(plugin(opts))
}
return css
}