Skip to content

Commit

Permalink
fix(cli): shouldn't load tsconfig when typescript disabled (#43)
Browse files Browse the repository at this point in the history
  • Loading branch information
Dunqing authored Sep 11, 2023
1 parent 686ac00 commit a4dc8ab
Showing 1 changed file with 24 additions and 20 deletions.
44 changes: 24 additions & 20 deletions packages/cli/src/utils/get-config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import path from 'node:path'
import { existsSync } from 'node:fs'
import { cosmiconfig } from 'cosmiconfig'
import type { ConfigLoaderResult } from 'tsconfig-paths'
import { loadConfig } from 'tsconfig-paths'
import * as z from 'zod'
import { resolveImport } from '@/src/utils/resolve-import'
Expand Down Expand Up @@ -62,33 +63,36 @@ export async function getConfig(cwd: string) {
}

export async function resolveConfigPaths(cwd: string, config: RawConfig) {
const TSCONFIG_PATH = config.framework === 'nuxt' ? '.nuxt/tsconfig.json' : './tsconfig.json'

// Read tsconfig.json.
const tsconfigPath = path.resolve(cwd, TSCONFIG_PATH)
let tsConfig = loadConfig(tsconfigPath)

// In new Vue project, tsconfig has references to tsconfig.app.json, which is causing the path not resolving correctly
// If no paths were found, try to load tsconfig.app.json.
if ('paths' in tsConfig && Object.keys(tsConfig.paths).length === 0) {
const FALLBACK_TSCONFIG_PATH = path.resolve(cwd, './tsconfig.app.json')
if (existsSync(FALLBACK_TSCONFIG_PATH))
tsConfig = loadConfig(FALLBACK_TSCONFIG_PATH)
}

if (tsConfig.resultType === 'failed') {
throw new Error(
`Failed to load tsconfig.json. ${tsConfig.message ?? ''}`.trim(),
)
let tsConfig: ConfigLoaderResult | undefined
if (config.typescript) {
const TSCONFIG_PATH = config.framework === 'nuxt' ? '.nuxt/tsconfig.json' : './tsconfig.json'

// Read tsconfig.json.
const tsconfigPath = path.resolve(cwd, TSCONFIG_PATH)
tsConfig = loadConfig(tsconfigPath)

// In new Vue project, tsconfig has references to tsconfig.app.json, which is causing the path not resolving correctly
// If no paths were found, try to load tsconfig.app.json.
if ('paths' in tsConfig && Object.keys(tsConfig.paths).length === 0) {
const FALLBACK_TSCONFIG_PATH = path.resolve(cwd, './tsconfig.app.json')
if (existsSync(FALLBACK_TSCONFIG_PATH))
tsConfig = loadConfig(FALLBACK_TSCONFIG_PATH)
}

if (tsConfig.resultType === 'failed') {
throw new Error(
`Failed to load tsconfig.json. ${tsConfig.message ?? ''}`.trim(),
)
}
}

return configSchema.parse({
...config,
resolvedPaths: {
tailwindConfig: path.resolve(cwd, config.tailwind.config),
tailwindCss: path.resolve(cwd, config.tailwind.css),
utils: await resolveImport(config.aliases.utils, tsConfig),
components: await resolveImport(config.aliases.components, tsConfig),
utils: tsConfig ? await resolveImport(config.aliases.utils, tsConfig) : config.aliases.utils,
components: tsConfig ? await resolveImport(config.aliases.components, tsConfig) : config.aliases.components,
},
})
}
Expand Down

0 comments on commit a4dc8ab

Please sign in to comment.