From 2e2dcc2e0ef7d657ff8c9ec8b3e6ffc6641d3e5a Mon Sep 17 00:00:00 2001 From: Brad Cornes Date: Thu, 30 Mar 2023 10:30:52 +0100 Subject: [PATCH] Fix first-party plugin usage when using bundled version of `tailwindcss` (#751) --- 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 400704f..3b1bcf0 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 912e9df..06f0425 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)