From b83785bca68fddbb2dbe395498b751fa0865ec23 Mon Sep 17 00:00:00 2001 From: wkj <278599135@qq.com> Date: Fri, 16 Sep 2022 13:54:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E7=BC=96=E8=AF=91path?= =?UTF-8?q?=E7=94=9F=E6=88=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/babel-plugin/oakPath.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/config/babel-plugin/oakPath.js b/config/babel-plugin/oakPath.js index d0c7b8a..024fe09 100644 --- a/config/babel-plugin/oakPath.js +++ b/config/babel-plugin/oakPath.js @@ -11,6 +11,9 @@ function isOakNamespaceIdentifier(node, name) { return false; } +const Regex = + /(\/*[a-zA-Z0-9_-])*\/(lib|src)\/(pages|components)+\/|(\\*[a-zA-Z0-9_-])*\\(lib|src)\\(pages|components)+\\|[a-zA-Z]:(\/*[a-zA-Z0-9_-])*\/(lib|src)\/(pages|components)+\/|[a-zA-Z]:(\\*[a-zA-Z0-9_-])*\\(lib|src)\\(pages|components)+\\/; + module.exports = (babel) => { return { visitor: { @@ -168,12 +171,11 @@ module.exports = (babel) => { }, Identifier(path, state) { const { cwd, filename } = state; - const rel = relative(cwd, filename).replace(/\\/g, '/'); - + const resolvePath = resolve(cwd, filename).replace(/\\/g, '/'); const { node, parent } = path; - if (node.name === 'OakPage' && /pages[\w|\W]+index\.(ts|js)$/.test(rel)) { - const relativePath = rel.slice(9, rel.length - 9); - + if (node.name === 'OakPage' && /pages[\w|\W]+index\.(ts|js)$/.test(resolvePath)) { + const regexStr = resolvePath.replace(Regex, '/'); + const relativePath = regexStr.slice(0, regexStr.length - 9); assert(t.isCallExpression(parent)); const { arguments } = parent; assert(arguments.length === 1 && t.isObjectExpression(arguments[0]));