diff --git a/src/generators/web/constants.mjs b/src/generators/web/constants.mjs index 53eff0d7..928bbfea 100644 --- a/src/generators/web/constants.mjs +++ b/src/generators/web/constants.mjs @@ -1,16 +1,7 @@ -import { parse, relative, sep, dirname } from 'node:path'; -import { resolve } from 'node:path/posix'; +import { resolve, dirname } from 'node:path'; import { fileURLToPath } from 'node:url'; -// Convert the current module's URL to a filesystem path, -// then calculate the relative path from the system root directory -// to this file. This relative path uses platform-specific separators, -// so replace them with forward slashes ("/") for consistency and web compatibility. -// Finally, prepend a leading slash to form an absolute root-relative path string. -// -// This produces a POSIX-style absolute path, even on Windows systems. -const dir = dirname(fileURLToPath(import.meta.url)); -export const ROOT = '/' + relative(parse(dir).root, dir).replaceAll(sep, '/'); +export const ROOT = dirname(fileURLToPath(import.meta.url)); /** * @typedef {Object} JSXImportConfig diff --git a/src/generators/web/utils/generate.mjs b/src/generators/web/utils/generate.mjs index 55aa3141..a9f3be84 100644 --- a/src/generators/web/utils/generate.mjs +++ b/src/generators/web/utils/generate.mjs @@ -1,4 +1,4 @@ -import { resolve } from 'node:path/posix'; +import { resolve } from 'node:path'; import { JSX_IMPORTS, ROOT } from '../constants.mjs'; @@ -14,6 +14,10 @@ export const createImportDeclaration = ( source, useDefault = true ) => { + // '\' characters shouldn't escape the next character, + // but rather be treated as slashes. + source = source.replaceAll('\\', '\\\\'); + // Side-effect-only import (CSS) if (!importName) { return `import "${source}";`;