Skip to content

Commit 25c67a0

Browse files
committed
fix: use appropriate package according to vue version
1 parent bcbfcb4 commit 25c67a0

File tree

1 file changed

+17
-8
lines changed

1 file changed

+17
-8
lines changed

packages/vue2-jest/lib/process.js

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,19 @@ const stripInlineSourceMap = require('./utils').stripInlineSourceMap
88
const getCustomTransformer = require('./utils').getCustomTransformer
99
const loadSrc = require('./utils').loadSrc
1010
const babelTransformer = require('babel-jest').default
11-
const { parse, compileTemplate, compileScript } = require('@vue/compiler-sfc')
1211
const generateCode = require('./generate-code')
1312
const mapLines = require('./map-lines')
1413

14+
let isVue27 = false
15+
let compilerUtils
16+
17+
try {
18+
compilerUtils = require('@vue/compiler-sfc')
19+
isVue27 = true
20+
} catch (e) {
21+
compilerUtils = require('@vue/component-compiler-utils')
22+
}
23+
1524
function resolveTransformer(lang = 'js', vueJestConfig) {
1625
const transformer = getCustomTransformer(vueJestConfig['transform'], lang)
1726
if (/^typescript$|tsx?$/.test(lang)) {
@@ -48,7 +57,7 @@ function processScriptSetup(descriptor, filePath, config) {
4857
return null
4958
}
5059
const vueJestConfig = getVueJestConfig(config)
51-
const content = compileScript(descriptor, {
60+
const content = compilerUtils.compileScript(descriptor, {
5261
id: filePath,
5362
...vueJestConfig.compilerOptions
5463
})
@@ -80,28 +89,28 @@ function processTemplate(descriptor, filename, config) {
8089
}
8190

8291
let bindings
83-
if (scriptSetup) {
84-
const scriptSetupResult = compileScript(descriptor, {
92+
if (isVue27 && scriptSetup) {
93+
const scriptSetupResult = compilerUtils.compileScript(descriptor, {
8594
id: filename,
8695
...vueJestConfig.compilerOptions
8796
})
8897
bindings = scriptSetupResult.bindings
8998
}
9099

91100
const userTemplateCompilerOptions = vueJestConfig.templateCompiler || {}
92-
const result = compileTemplate({
101+
const result = compilerUtils.compileTemplate({
93102
source: template.content,
94103
compiler: VueTemplateCompiler,
95104
filename: filename,
96105
isFunctional: template.attrs.functional,
97106
preprocessLang: template.lang,
98107
preprocessOptions: vueJestConfig[template.lang],
99-
bindings,
100108
...userTemplateCompilerOptions,
101109
compilerOptions: {
102110
optimize: false,
103111
...userTemplateCompilerOptions.compilerOptions
104-
}
112+
},
113+
...(isVue27 ? { bindings } : {})
105114
})
106115

107116
logResultErrors(result)
@@ -125,7 +134,7 @@ function processStyle(styles, filename, config) {
125134
}
126135

127136
module.exports = function(src, filename, config) {
128-
const descriptor = parse({
137+
const descriptor = compilerUtils.parse({
129138
source: src,
130139
compiler: VueTemplateCompiler,
131140
filename

0 commit comments

Comments
 (0)