diff --git a/.changeset/fix-css-import.md b/.changeset/fix-css-import.md new file mode 100644 index 00000000..2cd522b0 --- /dev/null +++ b/.changeset/fix-css-import.md @@ -0,0 +1,5 @@ +--- +'@css-modules-kit/core': patch +--- + +fix(core): fix the issue where `*.css` import resolution fails diff --git a/packages/core/src/resolver.test.ts b/packages/core/src/resolver.test.ts index 2a7a42d0..1454222c 100644 --- a/packages/core/src/resolver.test.ts +++ b/packages/core/src/resolver.test.ts @@ -19,6 +19,7 @@ describe('createResolver', async () => { const iff = await createIFF({ 'request.module.css': '', 'a.module.css': '', + 'a.css': '', 'dir/a.module.css': '', 'paths1/a.module.css': '', 'paths2/b.module.css': '', @@ -31,6 +32,7 @@ describe('createResolver', async () => { test('resolves relative path', () => { const resolve = createResolver(normalizeCompilerOptions({}, iff.rootDir), undefined); expect(resolve('./a.module.css', { request })).toBe(iff.paths['a.module.css']); + expect(resolve('./a.css', { request })).toBe(iff.paths['a.css']); expect(resolve('./dir/a.module.css', { request })).toBe(iff.paths['dir/a.module.css']); expect(resolve('./non-existent.module.css', { request })).toBe(undefined); }); diff --git a/packages/core/src/resolver.ts b/packages/core/src/resolver.ts index 06955546..d25a7b50 100644 --- a/packages/core/src/resolver.ts +++ b/packages/core/src/resolver.ts @@ -12,8 +12,8 @@ export function createResolver( const host: ts.ModuleResolutionHost = { ...ts.sys, fileExists: (fileName) => { - if (fileName.endsWith('.module.d.css.ts')) { - return ts.sys.fileExists(fileName.replace(/\.module\.d\.css\.ts$/u, '.module.css')); + if (fileName.endsWith('.d.css.ts')) { + return ts.sys.fileExists(fileName.replace(/\.d\.css\.ts$/u, '.css')); } return ts.sys.fileExists(fileName); }, @@ -26,8 +26,7 @@ export function createResolver( moduleResolutionCache, ); if (resolvedModule) { - // TODO: Logging that the paths is used. - return resolvedModule.resolvedFileName.replace(/\.module\.d\.css\.ts$/u, '.module.css'); + return resolvedModule.resolvedFileName.replace(/\.d\.css\.ts$/u, '.css'); } return undefined; };