소스 검색

feat(compiler-sfc): support `additionalData` option in `compileStyle` when processing sass (#1952)

satotake 5 년 전
부모
커밋
937735251c
2개의 변경된 파일23개의 추가작업 그리고 1개의 파일을 삭제
  1. 22 0
      packages/compiler-sfc/__tests__/compileStyle.spec.ts
  2. 1 1
      packages/compiler-sfc/src/stylePreprocessors.ts

+ 22 - 0
packages/compiler-sfc/__tests__/compileStyle.spec.ts

@@ -336,4 +336,26 @@ describe('SFC style preprocessors', () => {
       path.join(__dirname, './fixture/import.scss')
     ])
   })
+
+  test('scss respect user-defined options.additionalData', () => {
+    const res = compileStyle({
+      preprocessOptions: {
+        additionalData: `
+          @mixin square($size) {
+            width: $size;
+            height: $size;
+          }`
+      },
+      source: `
+        .square {
+          @include square(100px);
+        }
+      `,
+      filename: path.resolve(__dirname, './fixture/test.scss'),
+      id: '',
+      preprocessLang: 'scss'
+    })
+
+    expect(res.errors.length).toBe(0)
+  })
 })

+ 1 - 1
packages/compiler-sfc/src/stylePreprocessors.ts

@@ -24,7 +24,7 @@ const scss: StylePreprocessor = (source, map, options, load = require) => {
   const nodeSass = load('sass')
   const finalOptions = {
     ...options,
-    data: source,
+    data: (options.additionalData || '') + source,
     file: options.filename,
     outFile: options.filename,
     sourceMap: !!map