diff --git a/lib/mp-compiler/parse-ts.js b/lib/mp-compiler/parse-ts.js index 5792a1f..44acaf4 100644 --- a/lib/mp-compiler/parse-ts.js +++ b/lib/mp-compiler/parse-ts.js @@ -2,10 +2,13 @@ let ts try { ts = require('typescript') } catch (e) { - + // console.error(e) } function parseComponentsDeps (scriptContent) { + if (ts === null) { + throw new Error('Please run `npm install -S typescript` to install TypeScript.') + } const sourceFile = ts.createSourceFile('test', scriptContent, ts.ScriptTarget.ESNext, /* setParentNodes */ true) return delint(sourceFile) } @@ -21,7 +24,10 @@ function delint (sourceFile) { if (node.expression.expression && node.expression.expression.escapedText === 'Component') { const compArgs = node.expression.arguments if (compArgs && compArgs.length === 1) { - const vueClassArg = compArgs[0] + let vueClassArg = compArgs[0] + if (vueClassArg.kind === ts.SyntaxKind.AsExpression) { // @Component({ components: ...,} as any) + vueClassArg = vueClassArg.expression + } if (vueClassArg.properties) { vueClassArg.properties.forEach((classProp) => { // 处理components属性