Skip to content

Commit 0369ee7

Browse files
committed
don't search for pnp file above root dir
1 parent b6dbe71 commit 0369ee7

File tree

5 files changed

+60
-38
lines changed

5 files changed

+60
-38
lines changed

packages/tailwindcss-intellisense/src/class-names/environment.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,19 @@ import findUp from 'find-up'
44
import resolveFrom from 'resolve-from'
55
import importFrom from 'import-from'
66

7-
export function withUserEnvironment(base, cb) {
8-
const pnpPath = findUp.sync('.pnp.js', { cwd: base })
7+
export function withUserEnvironment(base, root, cb) {
8+
const pnpPath = findUp.sync(
9+
(dir) => {
10+
const pnpFile = path.join(dir, '.pnp.js')
11+
if (findUp.sync.exists(pnpFile)) {
12+
return pnpFile
13+
}
14+
if (dir === root) {
15+
return findUp.stop
16+
}
17+
},
18+
{ cwd: base }
19+
)
920
if (pnpPath) {
1021
return withPnpEnvironment(pnpPath, cb)
1122
}

packages/tailwindcss-intellisense/src/class-names/getPlugins.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import pkgUp from 'pkg-up'
44
import { isObject } from './isObject'
55
import { withUserEnvironment } from './environment'
66

7-
export async function getBuiltInPlugins({ cwd, resolvedConfig }) {
8-
return withUserEnvironment(cwd, ({ require, resolve }) => {
7+
export async function getBuiltInPlugins({ base, root, resolvedConfig }) {
8+
return withUserEnvironment(base, root, ({ require, resolve }) => {
99
const tailwindBase = path.dirname(resolve('tailwindcss/package.json'))
1010
try {
1111
return require('./lib/corePlugins.js', tailwindBase).default({

packages/tailwindcss-intellisense/src/class-names/getUtilityConfigMap.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@ const proxyHandler = (base = []) => ({
1919
})
2020

2121
export async function getUtilityConfigMap({
22-
cwd,
22+
base,
23+
root,
2324
resolvedConfig,
2425
postcss,
2526
browserslist,
2627
}) {
27-
const builtInPlugins = await getBuiltInPlugins({ cwd, resolvedConfig })
28+
const builtInPlugins = await getBuiltInPlugins({ base, root, resolvedConfig })
2829
const userPlugins = Array.isArray(resolvedConfig.plugins)
2930
? resolvedConfig.plugins
3031
: []

packages/tailwindcss-intellisense/src/class-names/index.js

Lines changed: 40 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ export default async function getClassNames(
5252
version,
5353
featureFlags = { future: [], experimental: [] },
5454
tailwindBase,
55-
} = loadMeta(configDir)
55+
} = loadMeta(configDir, cwd)
5656

5757
console.log(`Found tailwindcss v${version}: ${tailwindBase}`)
5858

@@ -90,6 +90,7 @@ export default async function getClassNames(
9090
postcss,
9191
} = await withPackages(
9292
configDir,
93+
cwd,
9394
async ({
9495
postcss,
9596
tailwindcss,
@@ -131,7 +132,11 @@ export default async function getClassNames(
131132
delete config.purge
132133
}
133134

134-
const resolvedConfig = resolveConfig({ cwd: configDir, config })
135+
const resolvedConfig = resolveConfig({
136+
base: configDir,
137+
root: cwd,
138+
config,
139+
})
135140

136141
let browserslist = []
137142
if (
@@ -180,7 +185,8 @@ export default async function getClassNames(
180185
plugins: getPlugins(config),
181186
variants: getVariants({ config, version, postcss, browserslist }),
182187
utilityConfigMap: await getUtilityConfigMap({
183-
cwd: configDir,
188+
base: configDir,
189+
root: cwd,
184190
resolvedConfig,
185191
postcss,
186192
browserslist,
@@ -235,8 +241,8 @@ export default async function getClassNames(
235241
return result
236242
}
237243

238-
function loadMeta(configDir) {
239-
return withUserEnvironment(configDir, ({ require, resolve }) => {
244+
function loadMeta(configDir, root) {
245+
return withUserEnvironment(configDir, root, ({ require, resolve }) => {
240246
const tailwindBase = path.dirname(resolve('tailwindcss/package.json'))
241247
const version = require('tailwindcss/package.json').version
242248
let featureFlags
@@ -249,31 +255,35 @@ function loadMeta(configDir) {
249255
})
250256
}
251257

252-
function withPackages(configDir, cb) {
253-
return withUserEnvironment(configDir, async ({ isPnP, require, resolve }) => {
254-
const tailwindBase = path.dirname(resolve('tailwindcss/package.json'))
255-
const postcss = require('postcss', tailwindBase)
256-
const tailwindcss = require('tailwindcss')
258+
function withPackages(configDir, root, cb) {
259+
return withUserEnvironment(
260+
configDir,
261+
root,
262+
async ({ isPnP, require, resolve }) => {
263+
const tailwindBase = path.dirname(resolve('tailwindcss/package.json'))
264+
const postcss = require('postcss', tailwindBase)
265+
const tailwindcss = require('tailwindcss')
257266

258-
let browserslistCommand
259-
let browserslistArgs = []
260-
try {
261-
const browserslistBin = resolve(
262-
path.join(
263-
'browserslist',
264-
require('browserslist/package.json', tailwindBase).bin.browserslist
265-
),
266-
tailwindBase
267-
)
268-
if (isPnP) {
269-
browserslistCommand = 'yarn'
270-
browserslistArgs = ['node', browserslistBin]
271-
} else {
272-
browserslistCommand = process.execPath
273-
browserslistArgs = [browserslistBin]
274-
}
275-
} catch (_) {}
267+
let browserslistCommand
268+
let browserslistArgs = []
269+
try {
270+
const browserslistBin = resolve(
271+
path.join(
272+
'browserslist',
273+
require('browserslist/package.json', tailwindBase).bin.browserslist
274+
),
275+
tailwindBase
276+
)
277+
if (isPnP) {
278+
browserslistCommand = 'yarn'
279+
browserslistArgs = ['node', browserslistBin]
280+
} else {
281+
browserslistCommand = process.execPath
282+
browserslistArgs = [browserslistBin]
283+
}
284+
} catch (_) {}
276285

277-
return cb({ postcss, tailwindcss, browserslistCommand, browserslistArgs })
278-
})
286+
return cb({ postcss, tailwindcss, browserslistCommand, browserslistArgs })
287+
}
288+
)
279289
}

packages/tailwindcss-intellisense/src/class-names/resolveConfig.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as path from 'path'
22
import decache from './decache'
33
import { withUserEnvironment } from './environment'
44

5-
export default function resolveConfig({ cwd, config }) {
5+
export default function resolveConfig({ base, root, config }) {
66
if (typeof config === 'string') {
77
if (!cwd) {
88
cwd = path.dirname(config)
@@ -11,7 +11,7 @@ export default function resolveConfig({ cwd, config }) {
1111
config = __non_webpack_require__(config)
1212
}
1313

14-
return withUserEnvironment(cwd, ({ require, resolve }) => {
14+
return withUserEnvironment(base, root, ({ require, resolve }) => {
1515
let resolveConfigFn = (config) => config
1616
const tailwindBase = path.dirname(resolve('tailwindcss/package.json'))
1717
try {

0 commit comments

Comments
 (0)