first commit
This commit is contained in:
133
app_vue/node_modules/@vue/component-compiler-utils/lib/styleProcessors/index.ts
generated
vendored
Normal file
133
app_vue/node_modules/@vue/component-compiler-utils/lib/styleProcessors/index.ts
generated
vendored
Normal file
@ -0,0 +1,133 @@
|
||||
const merge = require('merge-source-map')
|
||||
|
||||
export interface StylePreprocessor {
|
||||
render(
|
||||
source: string,
|
||||
map: any | null,
|
||||
options: any
|
||||
): StylePreprocessorResults
|
||||
}
|
||||
|
||||
export interface StylePreprocessorResults {
|
||||
code: string
|
||||
map?: any
|
||||
errors: Array<Error>
|
||||
}
|
||||
|
||||
// .scss/.sass processor
|
||||
const scss: StylePreprocessor = {
|
||||
render(
|
||||
source: string,
|
||||
map: any | null,
|
||||
options: any
|
||||
): StylePreprocessorResults {
|
||||
const nodeSass = require('sass')
|
||||
const finalOptions = Object.assign({}, options, {
|
||||
data: source,
|
||||
file: options.filename,
|
||||
outFile: options.filename,
|
||||
sourceMap: !!map
|
||||
})
|
||||
|
||||
try {
|
||||
const result = nodeSass.renderSync(finalOptions)
|
||||
|
||||
if (map) {
|
||||
return {
|
||||
code: result.css.toString(),
|
||||
map: merge(map, JSON.parse(result.map.toString())),
|
||||
errors: []
|
||||
}
|
||||
}
|
||||
|
||||
return { code: result.css.toString(), errors: [] }
|
||||
} catch (e) {
|
||||
return { code: '', errors: [e] }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const sass = {
|
||||
render(
|
||||
source: string,
|
||||
map: any | null,
|
||||
options: any
|
||||
): StylePreprocessorResults {
|
||||
return scss.render(
|
||||
source,
|
||||
map,
|
||||
Object.assign({}, options, { indentedSyntax: true })
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// .less
|
||||
const less = {
|
||||
render(
|
||||
source: string,
|
||||
map: any | null,
|
||||
options: any
|
||||
): StylePreprocessorResults {
|
||||
const nodeLess = require('less')
|
||||
|
||||
let result: any
|
||||
let error: Error | null = null
|
||||
nodeLess.render(
|
||||
source,
|
||||
Object.assign({}, options, { syncImport: true }),
|
||||
(err: Error | null, output: any) => {
|
||||
error = err
|
||||
result = output
|
||||
}
|
||||
)
|
||||
|
||||
if (error) return { code: '', errors: [error] }
|
||||
|
||||
if (map) {
|
||||
return {
|
||||
code: result.css.toString(),
|
||||
map: merge(map, result.map),
|
||||
errors: []
|
||||
}
|
||||
}
|
||||
|
||||
return { code: result.css.toString(), errors: [] }
|
||||
}
|
||||
}
|
||||
|
||||
// .styl
|
||||
const styl = {
|
||||
render(
|
||||
source: string,
|
||||
map: any | null,
|
||||
options: any
|
||||
): StylePreprocessorResults {
|
||||
const nodeStylus = require('stylus')
|
||||
try {
|
||||
const ref = nodeStylus(source)
|
||||
Object.keys(options).forEach(key => ref.set(key, options[key]))
|
||||
if (map) ref.set('sourcemap', { inline: false, comment: false })
|
||||
|
||||
const result = ref.render()
|
||||
if (map) {
|
||||
return {
|
||||
code: result,
|
||||
map: merge(map, ref.sourcemap),
|
||||
errors: []
|
||||
}
|
||||
}
|
||||
|
||||
return { code: result, errors: [] }
|
||||
} catch (e) {
|
||||
return { code: '', errors: [e] }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const processors: { [key: string]: StylePreprocessor } = {
|
||||
less,
|
||||
sass,
|
||||
scss,
|
||||
styl,
|
||||
stylus: styl
|
||||
}
|
Reference in New Issue
Block a user