Thinkmill / keystatic

First class CMS experience, TypeScript API, Markdown & YAML/JSON based, no DB
https://keystatic.com
MIT License
1.02k stars 68 forks source link

TypeError: Unknown file extension ".ts", while trying to run `dev-projects/astro-content` #1176

Open arihantverma opened 2 weeks ago

arihantverma commented 2 weeks ago

Output of pnpm run dev --verbose when http://127.0.0.1:4321/keystatic is visited, after following the steps to run dev-projects from readme

pnpm install
cd dev-projects/{example}
pnpm run dev --verbose
  astro:vite Error when evaluating SSR module /keystatic.config.tsx: failed to import "@keystatic/core"
  astro:vite |- TypeError: Unknown file extension ".ts" for /Users/arihantverma/code/oss/world/keystatic/packages/keystatic/src/index.ts
  astro:vite     at new NodeError (node:internal/errors:405:5)
  astro:vite     at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:136:11)
  astro:vite     at defaultGetFormat (node:internal/modules/esm/get_format:182:36)
  astro:vite     at defaultLoad (node:internal/modules/esm/load:101:20)
  astro:vite     at ModuleLoader.load (node:internal/modules/esm/loader:417:13)
  astro:vite     at ModuleLoader.moduleProvider (node:internal/modules/esm/loader:288:22)
  astro:vite     at new ModuleJob (node:internal/modules/esm/module_job:63:26)
  astro:vite     at #createModuleJob (node:internal/modules/esm/loader:312:17)
  astro:vite     at ModuleLoader.getJobFromResolveResult (node:internal/modules/esm/loader:265:34)
  astro:vite     at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:251:17)
  astro:vite     at async ModuleLoader.import (node:internal/modules/esm/loader:336:23)
  astro:vite  +0ms
  astro:vite Error when evaluating SSR module /Users/arihantverma/code/oss/world/keystatic/packages/astro/internal/keystatic-api.js: failed to import "/keystatic.config.tsx"
  astro:vite |- TypeError: Unknown file extension ".ts" for /Users/arihantverma/code/oss/world/keystatic/packages/keystatic/src/index.ts
  astro:vite     at new NodeError (node:internal/errors:405:5)
  astro:vite     at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:136:11)
  astro:vite     at defaultGetFormat (node:internal/modules/esm/get_format:182:36)
  astro:vite     at defaultLoad (node:internal/modules/esm/load:101:20)
  astro:vite     at ModuleLoader.load (node:internal/modules/esm/loader:417:13)
  astro:vite     at ModuleLoader.moduleProvider (node:internal/modules/esm/loader:288:22)
  astro:vite     at new ModuleJob (node:internal/modules/esm/module_job:63:26)
  astro:vite     at #createModuleJob (node:internal/modules/esm/loader:312:17)
  astro:vite     at ModuleLoader.getJobFromResolveResult (node:internal/modules/esm/loader:265:34)
  astro:vite     at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:251:17)
  astro:vite     at async ModuleLoader.import (node:internal/modules/esm/loader:336:23)
  astro:vite  +0ms
  astro:telemetry {
  astro:telemetry   context: {
  astro:telemetry     isGit: true,
  astro:telemetry     anonymousProjectId: 'f2bcade7d56c5a261160620cd3f0691670142ddfdc718a6aa6e7eb870ee8ef51',
  astro:telemetry     packageManager: 'pnpm',
  astro:telemetry     packageManagerVersion: '8.15.4',
  astro:telemetry     anonymousId: '3bf6a04f5d364af1b3ba37bc553e008493e4040c02818ecc88f3f78530208b7a',
  astro:telemetry     anonymousSessionId: '12eb0c8f7697ab713cb1638c5d47caaedb36a3a1fd932c45de613cbbce03c6f1'
  astro:telemetry   },
  astro:telemetry   meta: {
  astro:telemetry     nodeVersion: '18.20.3',
  astro:telemetry     viteVersion: '5.0.6',
  astro:telemetry     astroVersion: '4.0.3',
  astro:telemetry     systemPlatform: 'darwin',
  astro:telemetry     systemRelease: '23.4.0',
  astro:telemetry     systemArchitecture: 'arm64',
  astro:telemetry     cpuCount: 8,
  astro:telemetry     cpuModel: 'Apple M2',
  astro:telemetry     cpuSpeed: 24,
  astro:telemetry     memoryInMb: 16384,
  astro:telemetry     isDocker: false,
  astro:telemetry     isTTY: true,
  astro:telemetry     isWSL: false,
  astro:telemetry     isCI: false,
  astro:telemetry     ciName: null
  astro:telemetry   }
  astro:telemetry } +4s
  astro:telemetry [
  astro:telemetry   {
  astro:telemetry     "eventName": "ASTRO_CLI_ERROR",
  astro:telemetry     "payload": {
  astro:telemetry       "name": "TypeError",
  astro:telemetry       "cliCommand": "dev",
  astro:telemetry       "isFatal": false,
  astro:telemetry       "anonymousMessageHint": "Unknown file extensi"
  astro:telemetry     }
  astro:telemetry   }
  astro:telemetry ] +0ms
22:22:38 [ERROR] Unknown file extension ".ts" for /Users/arihantverma/code/oss/world/keystatic/packages/keystatic/src/index.ts
  Stack trace:
    at new NodeError (node:internal/errors:405:5)
    at defaultGetFormat (node:internal/modules/esm/get_format:182:36)
    at ModuleLoader.load (node:internal/modules/esm/loader:417:13)
    at new ModuleJob (node:internal/modules/esm/module_job:63:26)
    at ModuleLoader.getJobFromResolveResult (node:internal/modules/esm/loader:265:34)
    at async ModuleLoader.import (node:internal/modules/esm/loader:336:23)
  vite:time 129.25ms /api/keystatic/tree +269ms

cc @emmatown @JedWatson

arihantverma commented 2 weeks ago

It works if vite ssr external config is removed

import { defineConfig } from 'astro/config';
import react from '@astrojs/react';
import tailwind from '@astrojs/tailwind';
import sitemap from '@astrojs/sitemap';
import markdoc from '@astrojs/markdoc';
import keystatic from '@keystatic/astro';

// https://astro.build/config
export default defineConfig({
  output: 'hybrid',
  site: 'https://example.com',
  integrations: [tailwind(), react(), sitemap(), markdoc(), keystatic()],
  // this vite config is only needed inside the monorepo
-  vite: {
-    ssr: {
-      external: ['@keystatic/core'],
-    },
-  },
});