chore: use moduleResolution: bundler + shim estree-walker

This commit is contained in:
Evan You 2023-06-23 08:54:25 +08:00
parent d2c3d8b70b
commit ae7453f0f1
6 changed files with 18 additions and 7 deletions

View File

@ -32,7 +32,7 @@ export function walkIdentifiers(
root.body[0].type === 'ExpressionStatement' &&
root.body[0].expression
;(walk as any)(root, {
walk(root, {
enter(node: Node & { scopeIds?: Set<string> }, parent: Node | undefined) {
parent && parentStack.push(parent)
if (

View File

@ -607,8 +607,8 @@ export function compileScript(
node.type.endsWith('Statement')
) {
const scope: Statement[][] = [scriptSetupAst.body]
;(walk as any)(node, {
enter(child: Node, parent: Node) {
walk(node, {
enter(child: Node, parent: Node | undefined) {
if (isFunctionType(child)) {
this.skip()
}
@ -633,7 +633,7 @@ export function compileScript(
ctx,
child,
needsSemi,
parent.type === 'ExpressionStatement'
parent!.type === 'ExpressionStatement'
)
}
},

View File

@ -238,7 +238,7 @@ export function transformDestructuredProps(
// check root scope first
const ast = ctx.scriptSetupAst!
walkScope(ast, true)
;(walk as any)(ast, {
walk(ast, {
enter(node: Node, parent?: Node) {
parent && parentStack.push(parent)

11
packages/global.d.ts vendored
View File

@ -33,6 +33,17 @@ declare module 'file-saver' {
export function saveAs(blob: any, name: any): void
}
declare module 'estree-walker' {
export function walk<T>(
root: T,
options: {
enter?: (node: T, parent: T | undefined) => any
leave?: (node: T, parent: T | undefined) => any
exit?: (node: T) => any
} & ThisType<{ skip: () => void }>
)
}
declare interface String {
/**
* @deprecated Please use String.prototype.slice instead of String.prototype.substring in the repository.

View File

@ -636,7 +636,7 @@ export function transformAST(
// check root scope first
walkScope(ast, true)
;(walk as any)(ast, {
walk(ast, {
enter(node: Node, parent?: Node) {
parent && parentStack.push(parent)

View File

@ -7,7 +7,7 @@
"newLine": "LF",
"useDefineForClassFields": false,
"module": "esnext",
"moduleResolution": "node",
"moduleResolution": "bundler",
"allowJs": false,
"strict": true,
"noUnusedLocals": true,