From cfc3afa2677ec207a71c769c6add5efb0cd269c3 Mon Sep 17 00:00:00 2001 From: Brad Cornes Date: Thu, 30 Mar 2023 10:30:20 +0100 Subject: [PATCH] Fix first-party plugin usage when using bundled version of `tailwindcss` --- packages/tailwindcss-language-server/src/lib/hook.ts | 2 +- packages/tailwindcss-language-server/src/server.ts | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/tailwindcss-language-server/src/lib/hook.ts b/packages/tailwindcss-language-server/src/lib/hook.ts index 400704fe..3b1bcf05 100644 --- a/packages/tailwindcss-language-server/src/lib/hook.ts +++ b/packages/tailwindcss-language-server/src/lib/hook.ts @@ -20,7 +20,7 @@ export default class Hook { private _origRequire = Module.prototype.require private _require: (req: string) => any - constructor(find: string, callback: (x) => {}) { + constructor(find: string, callback: (x) => {} = (x) => x) { // @ts-ignore if (typeof Module._resolveFilename !== 'function') { throw new Error( diff --git a/packages/tailwindcss-language-server/src/server.ts b/packages/tailwindcss-language-server/src/server.ts index 912e9df2..06f04252 100644 --- a/packages/tailwindcss-language-server/src/server.ts +++ b/packages/tailwindcss-language-server/src/server.ts @@ -910,9 +910,14 @@ async function createProjectService( let hook: Hook if (loadConfig.module) { - originalConfig = await loadConfig.module(state.configPath) - originalConfig = originalConfig.default ?? originalConfig - state.jit = true + hook = new Hook(fs.realpathSync(state.configPath)) + try { + originalConfig = await loadConfig.module(state.configPath) + originalConfig = originalConfig.default ?? originalConfig + state.jit = true + } finally { + hook.unhook() + } } else { hook = new Hook(fs.realpathSync(state.configPath), (exports) => { originalConfig = klona(exports)