refactor(compiler-sfc): simplify style preprocessors
This commit is contained in:
parent
9cb29eea3a
commit
d5055cd8dd
@ -213,7 +213,7 @@ function preprocess(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
return preprocessor.render(
|
return preprocessor(
|
||||||
options.source,
|
options.source,
|
||||||
options.map,
|
options.map,
|
||||||
{
|
{
|
||||||
|
@ -3,8 +3,7 @@ import path from 'path'
|
|||||||
import { RawSourceMap } from 'source-map'
|
import { RawSourceMap } from 'source-map'
|
||||||
import { SFCStyleCompileOptions } from './compileStyle'
|
import { SFCStyleCompileOptions } from './compileStyle'
|
||||||
|
|
||||||
export interface StylePreprocessor {
|
export type StylePreprocessor = (
|
||||||
render(
|
|
||||||
source: string,
|
source: string,
|
||||||
map: RawSourceMap | undefined,
|
map: RawSourceMap | undefined,
|
||||||
options: {
|
options: {
|
||||||
@ -12,8 +11,7 @@ export interface StylePreprocessor {
|
|||||||
filename: string
|
filename: string
|
||||||
},
|
},
|
||||||
customRequire: SFCStyleCompileOptions['preprocessCustomRequire']
|
customRequire: SFCStyleCompileOptions['preprocessCustomRequire']
|
||||||
): StylePreprocessorResults
|
) => StylePreprocessorResults
|
||||||
}
|
|
||||||
|
|
||||||
export interface StylePreprocessorResults {
|
export interface StylePreprocessorResults {
|
||||||
code: string
|
code: string
|
||||||
@ -23,8 +21,7 @@ export interface StylePreprocessorResults {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// .scss/.sass processor
|
// .scss/.sass processor
|
||||||
const scss: StylePreprocessor = {
|
const scss: StylePreprocessor = (source, map, options, load = require) => {
|
||||||
render(source, map, options, load = require) {
|
|
||||||
const nodeSass = load('sass')
|
const nodeSass = load('sass')
|
||||||
const finalOptions = {
|
const finalOptions = {
|
||||||
...options,
|
...options,
|
||||||
@ -52,11 +49,9 @@ const scss: StylePreprocessor = {
|
|||||||
return { code: '', errors: [e], dependencies: [] }
|
return { code: '', errors: [e], dependencies: [] }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
const sass: StylePreprocessor = {
|
const sass: StylePreprocessor = (source, map, options, load) =>
|
||||||
render(source, map, options, load) {
|
scss(
|
||||||
return scss.render(
|
|
||||||
source,
|
source,
|
||||||
map,
|
map,
|
||||||
{
|
{
|
||||||
@ -65,12 +60,9 @@ const sass: StylePreprocessor = {
|
|||||||
},
|
},
|
||||||
load
|
load
|
||||||
)
|
)
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// .less
|
// .less
|
||||||
const less: StylePreprocessor = {
|
const less: StylePreprocessor = (source, map, options, load = require) => {
|
||||||
render(source, map, options, load = require) {
|
|
||||||
const nodeLess = load('less')
|
const nodeLess = load('less')
|
||||||
|
|
||||||
let result: any
|
let result: any
|
||||||
@ -105,11 +97,9 @@ const less: StylePreprocessor = {
|
|||||||
dependencies: dependencies
|
dependencies: dependencies
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// .styl
|
// .styl
|
||||||
const styl: StylePreprocessor = {
|
const styl: StylePreprocessor = (source, map, options, load = require) => {
|
||||||
render(source, map, options, load = require) {
|
|
||||||
const nodeStylus = load('stylus')
|
const nodeStylus = load('stylus')
|
||||||
try {
|
try {
|
||||||
const ref = nodeStylus(source)
|
const ref = nodeStylus(source)
|
||||||
@ -136,7 +126,6 @@ const styl: StylePreprocessor = {
|
|||||||
return { code: '', errors: [e], dependencies: [] }
|
return { code: '', errors: [e], dependencies: [] }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
export type PreprocessLang = 'less' | 'sass' | 'scss' | 'styl' | 'stylus'
|
export type PreprocessLang = 'less' | 'sass' | 'scss' | 'styl' | 'stylus'
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user