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, `