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

Lines changed: 4 additions & 1 deletion
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

Lines changed: 16 additions & 2 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy