Skip to content

Commit 637b137

Browse files
committed
refactor: support modern api
1 parent aad407d commit 637b137

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

packages/compiler-sfc/src/style/preprocessors.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import merge from 'merge-source-map'
2+
import { fileURLToPath, pathToFileURL } from 'url'
23
import type { RawSourceMap } from '@vue/compiler-core'
34
import type { SFCStyleCompileOptions } from '../compileStyle'
45
import { isFunction } from '@vue/shared'
@@ -23,23 +24,21 @@ export interface StylePreprocessorResults {
2324

2425
// .scss/.sass processor
2526
const scss: StylePreprocessor = (source, map, options, load = require) => {
26-
const nodeSass = load('sass')
27-
const finalOptions = {
27+
const nodeSass = load('sass') as typeof import('sass')
28+
const data = getSource(source, options.filename, options.additionalData)
29+
const finalOptions: import('sass').StringOptions<'sync'> = {
2830
...options,
29-
data: getSource(source, options.filename, options.additionalData),
30-
file: options.filename,
31-
outFile: options.filename,
31+
url: pathToFileURL(options.filename),
3232
sourceMap: !!map,
33-
silenceDeprecations: ['legacy-js-api'],
3433
}
3534

3635
try {
37-
const result = nodeSass.renderSync(finalOptions)
38-
const dependencies = result.stats.includedFiles
36+
const result = nodeSass.compileString(data, finalOptions)
37+
const dependencies = result.loadedUrls.map(url => fileURLToPath(url))
3938
if (map) {
4039
return {
4140
code: result.css.toString(),
42-
map: merge(map, JSON.parse(result.map.toString())),
41+
map: merge(map, JSON.parse(result.sourceMap?.toString() ?? '')),
4342
errors: [],
4443
dependencies,
4544
}

0 commit comments

Comments
 (0)