From 148cbad1161345cac578f76ed5c4889c39707a93 Mon Sep 17 00:00:00 2001 From: nllwrq Date: Fri, 19 Oct 2018 10:07:51 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8C=B9=E9=85=8Dvue?= =?UTF-8?q?=E4=B8=AD=E5=A4=96=E9=93=BE=E7=9A=84js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.js | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/index.js b/index.js index 0945e30..e3a92b5 100644 --- a/index.js +++ b/index.js @@ -10,19 +10,36 @@ const log = require('./util').log; // cache parsed md const markdownCodes = {}; +//通过vue文件中的src获取js里面内容,从而解决js外链的写法 +const getScriptContentBySrc = (vueSrc, jsSrc) => { + var vuefull = vueSrc.split('\\'); + vuefull.pop(); + vueSrc = vuefull.join('\\'); + + const jsFullSrc = path.join(vueSrc, jsSrc); + return fs.readFileSync(jsFullSrc, 'utf-8'); +} // handlers exports.handlers = { - beforeParse (e) { + beforeParse(e) { if (/\.vue$/.test(e.filename)) { log(`parse file begin: ${e.filename}`); // extract script + let code = '', + fileContent = ''; const parsedComponent = compiler.parseComponent(e.source); - const code = parsedComponent.script ? parsedComponent.script.content : ''; - + // 判断是否为外链的js + if (parsedComponent.script.src) { + code = getScriptContentBySrc(e.filename, parsedComponent.script.src); + fileContent = e.source.replace(/(([\s\S])*)?<\/script>/g, `