1
1
import merge from 'merge-source-map'
2
- import { fileURLToPath , pathToFileURL } from 'url'
3
2
import type { RawSourceMap } from '@vue/compiler-core'
4
3
import type { SFCStyleCompileOptions } from '../compileStyle'
5
4
import { isFunction } from '@vue/shared'
@@ -24,6 +23,7 @@ export interface StylePreprocessorResults {
24
23
25
24
// .scss/.sass processor
26
25
const scss : StylePreprocessor = ( source , map , options , load = require ) => {
26
+ const { pathToFileURL, fileURLToPath } : typeof import ( 'url' ) = load ( 'url' )
27
27
const nodeSass = load ( 'sass' ) as typeof import ( 'sass' )
28
28
const data = getSource ( source , options . filename , options . additionalData )
29
29
const finalOptions : import ( 'sass' ) . StringOptions < 'sync' > = {
@@ -37,14 +37,14 @@ const scss: StylePreprocessor = (source, map, options, load = require) => {
37
37
const dependencies = result . loadedUrls . map ( url => fileURLToPath ( url ) )
38
38
if ( map ) {
39
39
return {
40
- code : result . css . toString ( ) ,
41
- map : merge ( map , JSON . parse ( result . sourceMap ?. toString ( ) ?? '' ) ) ,
40
+ code : result . css ,
41
+ map : merge ( map , result . sourceMap ! ) ,
42
42
errors : [ ] ,
43
43
dependencies,
44
44
}
45
45
}
46
46
47
- return { code : result . css . toString ( ) , errors : [ ] , dependencies }
47
+ return { code : result . css , errors : [ ] , dependencies }
48
48
} catch ( e : any ) {
49
49
return { code : '' , errors : [ e ] , dependencies : [ ] }
50
50
}
0 commit comments