Skip to content

Commit d298014

Browse files
authored
Support require.extensions mutations (tailwindlabs#583)
1 parent 31d20e3 commit d298014

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

packages/tailwindcss-language-server/src/util/resolveFrom.ts

+16-2
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,38 @@
11
import * as fs from 'fs'
22
import { CachedInputFileSystem, ResolverFactory, Resolver, ResolveOptions } from 'enhanced-resolve'
3+
import { equal } from 'tailwindcss-language-service/src/util/array'
4+
5+
let pnpApi: any
6+
let extensions = Object.keys(require.extensions)
37

48
function createResolver(options: Partial<ResolveOptions> = {}): Resolver {
59
return ResolverFactory.createResolver({
610
fileSystem: new CachedInputFileSystem(fs, 4000),
711
useSyncFileSystemCalls: true,
812
// cachePredicate: () => false,
913
conditionNames: ['node', 'require'],
14+
extensions,
15+
pnpApi,
1016
...options,
1117
})
1218
}
1319

1420
let resolver = createResolver()
1521

16-
export function setPnpApi(pnpApi: any): void {
17-
resolver = createResolver({ pnpApi })
22+
export function setPnpApi(newPnpApi: any): void {
23+
pnpApi = newPnpApi
24+
resolver = createResolver()
1825
}
1926

2027
export default function resolveFrom(from?: string, id?: string): string {
2128
if (id.startsWith('\\\\')) return id
29+
30+
let newExtensions = Object.keys(require.extensions)
31+
if (!equal(newExtensions, extensions)) {
32+
extensions = newExtensions
33+
resolver = createResolver()
34+
}
35+
2236
let result = resolver.resolveSync({}, from, id)
2337
if (result === false) throw Error()
2438
// https://github.com/webpack/enhanced-resolve/issues/282

0 commit comments

Comments
 (0)