修复 编译path生成问题

This commit is contained in:
Wang Kejun 2022-09-16 13:54:16 +08:00
parent b01a85fa8a
commit b83785bca6
1 changed files with 7 additions and 5 deletions

View File

@ -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]));