mirror of
https://github.com/gkd-kit/docs.git
synced 2024-11-16 02:52:20 +08:00
perf: use acorn type
This commit is contained in:
parent
207b4811db
commit
86bf93c973
1
.npmrc
1
.npmrc
|
@ -6,3 +6,4 @@ public-hoist-pattern[]=vue
|
|||
public-hoist-pattern[]=vite
|
||||
public-hoist-pattern[]=rollup
|
||||
public-hoist-pattern[]=@vueuse/core
|
||||
public-hoist-pattern[]=acorn
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import * as walk from 'acorn-walk';
|
||||
import { simple } from 'acorn-walk';
|
||||
import type { ImportExpression } from 'acorn';
|
||||
import jsdom from 'jsdom';
|
||||
import MagicString from 'magic-string';
|
||||
import fs from 'node:fs/promises';
|
||||
|
@ -40,28 +41,30 @@ export const mirror = (): Plugin | undefined => {
|
|||
chunk.code.match(includesDynamicImport)
|
||||
) {
|
||||
const ast = this.parse(chunk.code);
|
||||
const nodes: any[] = [];
|
||||
walk.simple(ast, {
|
||||
const nodes: ImportExpression[] = [];
|
||||
simple(ast, {
|
||||
ImportExpression(node) {
|
||||
nodes.push(node.source);
|
||||
nodes.push(node);
|
||||
},
|
||||
});
|
||||
if (nodes.length == 0) {
|
||||
return;
|
||||
}
|
||||
const ms = new MagicString(chunk.code);
|
||||
nodes.forEach((node) => {
|
||||
const start = node.start;
|
||||
const end = node.end;
|
||||
const code = chunk.code.slice(start, end);
|
||||
ms.overwrite(
|
||||
start,
|
||||
end,
|
||||
`((u)=>{if(u.startsWith('/')){return${JSON.stringify(
|
||||
mirrorBaseUrl,
|
||||
)}+u}return u})(${code})`,
|
||||
);
|
||||
});
|
||||
nodes
|
||||
.map((v) => v.source)
|
||||
.forEach((node) => {
|
||||
const start = node.start;
|
||||
const end = node.end;
|
||||
const code = chunk.code.slice(start, end);
|
||||
ms.overwrite(
|
||||
start,
|
||||
end,
|
||||
`((u)=>{if(u.startsWith('/')){return${JSON.stringify(
|
||||
mirrorBaseUrl,
|
||||
)}+u}return u})(${code})`,
|
||||
);
|
||||
});
|
||||
chunk.code = ms.toString();
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue
Block a user