Skip to content

Commit 796751e

Browse files
committed
fix: try catch scss render
1 parent 990469a commit 796751e

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

lib/compilers/scss-compiler.js

+11-5
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const path = require('path')
22
const fs = require('fs')
33
const ensureRequire = require('../ensure-require')
44
const cwd = process.cwd()
5+
const logger = require('../logger')
56

67
const rewriteImports = (content, filePath) => content.replace(/@import\s+(?:'([^']+)'|"([^"]+)"|([^\s;]+))/g, (entire, single, double, unquoted) => {
78
const oldImportPath = single || double || unquoted
@@ -24,9 +25,14 @@ module.exports = (content, filePath, config) => {
2425
.map(scssResourcePath => rewriteImports(fs.readFileSync(scssResourcePath).toString(), scssResourcePath))
2526
.join('\n')
2627
}
27-
28-
return sass.renderSync({
29-
data: scssResources + rewriteImports(content, filePath),
30-
outputStyle: 'compressed'
31-
}).css.toString()
28+
let result
29+
try {
30+
sass.renderSync({
31+
data: scssResources + rewriteImports(content, filePath),
32+
outputStyle: 'compressed'
33+
}).css.toString()
34+
} catch (err) {
35+
logger.warn(`There was an error rendering the SCSS in ${filePath}. SCSS is not fully supported by vue-jest, so some features will throw errors. Webpack aliases are a common cause of errors.`)
36+
}
37+
return result || ''
3238
}

test/resources/Sass.vue

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
<style lang="scss">
66
@import "./styles/transitions";
7+
@import '~@design'
8+
79
810
.testA {
911
background-color: red;

0 commit comments

Comments
 (0)