Skip to content

Commit cd7d123

Browse files
fix: add support Vue 3 fixed #1339 (#1372)
Vue dependencies was moved to optionalDependencies So, that mean if you need Vue support you also have to add in own package.json new dependency for Vue 2 is vue-template-compiler, Vue 3 is @vue/compiler-sfc
1 parent 8a3b15d commit cd7d123

File tree

3 files changed

+279
-5
lines changed

3 files changed

+279
-5
lines changed

package.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,12 @@
5252
"vfile-sort": "^2.1.0",
5353
"vinyl": "^2.1.0",
5454
"vinyl-fs": "^3.0.2",
55-
"vue-template-compiler": "^2.5.16",
5655
"yargs": "^15.3.1"
5756
},
57+
"optionalDependencies": {
58+
"vue-template-compiler": "^2.6.12",
59+
"@vue/compiler-sfc": "^3.0.11"
60+
},
5861
"devDependencies": {
5962
"chdir": "0.0.0",
6063
"cz-conventional-changelog": "2.1.0",

src/parsers/vue.js

+16-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
const parseJavaScript = require('./javascript');
2-
const vuecompiler = require('vue-template-compiler');
32

43
/**
54
* Receives a module-dep item,
@@ -10,9 +9,24 @@ const vuecompiler = require('vue-template-compiler');
109
* @returns {Array<Object>} an array of parsed comments
1110
*/
1211
function parseVueScript(data, config) {
13-
const component = vuecompiler.parseComponent(data.source);
12+
let component = {};
13+
try {
14+
const vuecompiler = require('@vue/compiler-sfc');
15+
component = vuecompiler.parse(data.source).descriptor;
16+
} catch (e) {
17+
try {
18+
const vuecompiler = require('vue-template-compiler');
19+
component = vuecompiler.parseComponent(data.source);
20+
} catch (e) {
21+
console.error(
22+
'You need to load package vue-template-compiler for Vue 2 or @vue/compiler-sfc for Vue 3'
23+
);
24+
}
25+
}
26+
1427
if (!component.script) return [];
1528
data.source = component.script.content;
29+
1630
return parseJavaScript(data, config);
1731
}
1832

0 commit comments

Comments
 (0)