Skip to content

Commit 8e18624

Browse files
committed
fix(babel/auto): fix webpack compatibility
1 parent fe80021 commit 8e18624

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

src/babel/getBabelAutoBackend.ts

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import path from 'path'
22
import _resolve from 'resolve'
33
import BabelBackend from './BabelBackend'
4+
import defaultBabelTypes from '@babel/types'
5+
import defaultBabelGenerator from '@babel/generator'
46
import { getParserAsync } from 'babel-parse-wild-code'
57
import { promisify } from 'util'
68

@@ -11,28 +13,24 @@ const resolve: (
1113
) => Promise<string> = promisify(_resolve as any)
1214

1315
async function importLocal<T>(pkg: string, basedir: string): Promise<T> {
14-
try {
15-
const resolved = await resolve(pkg, {
16-
basedir,
17-
})
18-
// eslint-disable-next-line @typescript-eslint/no-var-requires
19-
return await import(/* webpackIgnore: true */ resolved)
20-
} catch (error) {
21-
return await import(pkg)
22-
}
16+
const resolved = await resolve(pkg, {
17+
basedir,
18+
})
19+
// eslint-disable-next-line @typescript-eslint/no-var-requires
20+
return await import(/* webpackIgnore: true */ resolved)
2321
}
2422

2523
export default async function getBabelAutoBackend(
2624
file: string,
2725
options?: { [k in string]?: any }
2826
): Promise<BabelBackend> {
2927
const basedir = path.dirname(file)
30-
const [_parser, types, { default: _generate }]: any = await Promise.all([
28+
const [_parser, types, generator]: any = await Promise.all([
3129
getParserAsync(file, options),
32-
importLocal('@babel/types', basedir),
33-
importLocal('@babel/generator', basedir),
30+
importLocal('@babel/types', basedir).catch(() => defaultBabelTypes),
31+
importLocal('@babel/generator', basedir).catch(() => defaultBabelGenerator),
3432
])
35-
const generate = _generate.default || _generate
33+
const generate = generator.default || generator
3634
const parser = _parser.parserOpts.sourceType
3735
? _parser
3836
: _parser.bindParserOpts({ sourceType: 'unambiguous' })

0 commit comments

Comments
 (0)