ElMassimo / iles

🏝 The joyful site generator
https://iles.pages.dev
MIT License
1.08k stars 31 forks source link

Vite 2.8.0 breaks îles `dev` and `build` command #87

Closed johannschopplich closed 2 years ago

johannschopplich commented 2 years ago

Description 📖

With the latest version of îles (v0.7.28), I encounter the following error:

[vite] Internal server error: failed to resolve "extends":"../../tsconfig.json" in /Users/johann/Git/iles-app/node_modules/.pnpm/iles@0.7.28/node_modules/iles/dist/client/tsconfig.json
  Plugin: vite:vue
  File: /Users/johann/Git/iles-app/node_modules/.pnpm/iles@0.7.28/node_modules/iles/dist/client/app/components/App.vue

Reproduction 🐞

pnpm init iles@next
cd iles-app
pnpm run dev
Dependencies Info ``` devDependencies: iles 0.7.28 typescript 4.5.5 vitest 0.3.2 vue-tsc 0.29.8 ```

Logs 📜

Output ``` iles:config loaded config at /Users/johann/Git/iles-app/iles.config.ts +0ms iles:config { iles:config root: '/Users/johann/Git/iles-app', iles:config modules: [ iles:config { iles:config name: 'iles:base-config', iles:config debug: true, iles:config turbo: false, iles:config jsx: undefined, iles:config root: '/Users/johann/Git/iles-app', iles:config base: '/', iles:config siteUrl: '', iles:config prettyUrls: true, iles:config ssg: [Object], iles:config configPath: '/Users/johann/Git/iles-app/iles.config.ts', iles:config assetsDir: 'assets', iles:config pagesDir: 'pages', iles:config srcDir: 'src', iles:config outDir: 'dist', iles:config layoutsDir: 'layouts', iles:config tempDir: '.iles-ssg-temp', iles:config modules: [], iles:config namedPlugins: [Object], iles:config resolvePath: undefined, iles:config vitePlugins: [Array], iles:config vite: [Object], iles:config vue: [Object], iles:config extendFrontmatter: [AsyncFunction: extendFrontmatter], iles:config extendRoute: [Function: extendRoute], iles:config extendRoutes: [Function: extendRoutes], iles:config markdown: [Object], iles:config components: [Object] iles:config }, iles:config { iles:config name: '@islands/mdx', iles:config markdown: [Object], iles:config configResolved: [Function: configResolved] iles:config }, iles:config { iles:config name: 'user-config', iles:config configPath: '/Users/johann/Git/iles-app/iles.config.ts' iles:config }, iles:config { iles:config name: '@islands/pages', iles:config configResolved: [Function: configResolved] iles:config } iles:config ], iles:config debug: true, iles:config turbo: false, iles:config base: '/', iles:config siteUrl: '', iles:config prettyUrls: true, iles:config ssg: { sitemap: true }, iles:config configPath: '/Users/johann/Git/iles-app/iles.config.ts', iles:config assetsDir: 'assets', iles:config pagesDir: '/Users/johann/Git/iles-app/src/pages', iles:config srcDir: '/Users/johann/Git/iles-app/src', iles:config outDir: '/Users/johann/Git/iles-app/dist', iles:config layoutsDir: '/Users/johann/Git/iles-app/src/layouts', iles:config tempDir: '/Users/johann/Git/iles-app/.iles-ssg-temp', iles:config namedPlugins: { iles:config components: { iles:config name: 'unplugin-vue-components', iles:config enforce: 'post', iles:config api: [Object], iles:config transformInclude: [Function: transformInclude], iles:config transform: [Function (anonymous)], iles:config vite: [Object], iles:config configResolved: [Function: configResolved], iles:config configureServer: [Function: configureServer] iles:config }, iles:config vue: { iles:config name: 'vite:vue', iles:config handleHotUpdate: [Function: handleHotUpdate], iles:config config: [Function: config], iles:config configResolved: [Function: configResolved], iles:config configureServer: [Function: configureServer], iles:config buildStart: [Function: buildStart], iles:config resolveId: [AsyncFunction: resolveId], iles:config load: [Function: load], iles:config transform: [Function: transform] iles:config }, iles:config pages: { iles:config name: 'iles:pages', iles:config enforce: 'pre', iles:config api: [Getter], iles:config configResolved: [AsyncFunction: configResolved], iles:config configureServer: [AsyncFunction: configureServer], iles:config buildStart: [AsyncFunction: buildStart], iles:config resolveId: [AsyncFunction: resolveId], iles:config load: [AsyncFunction: load], iles:config transform: [AsyncFunction: transform] iles:config } iles:config }, iles:config vitePlugins: [ iles:config { iles:config name: 'iles:mdx:compile', iles:config configResolved: [AsyncFunction: configResolved], iles:config transform: [AsyncFunction: transform] iles:config }, iles:config { name: 'iles:mdx:sfc', transform: [AsyncFunction: transform] }, iles:config { iles:config name: 'iles:mdx:hmr', iles:config apply: 'serve', iles:config transform: [Function: transform] iles:config }, iles:config { iles:config name: 'iles:pages', iles:config enforce: 'pre', iles:config api: [Getter], iles:config configResolved: [AsyncFunction: configResolved], iles:config configureServer: [AsyncFunction: configureServer], iles:config buildStart: [AsyncFunction: buildStart], iles:config resolveId: [AsyncFunction: resolveId], iles:config load: [AsyncFunction: load], iles:config transform: [AsyncFunction: transform] iles:config } iles:config ], iles:config vite: { iles:config root: '/Users/johann/Git/iles-app', iles:config resolve: { alias: [Array], dedupe: [Array] }, iles:config server: { fs: [Object] }, iles:config build: { brotliSize: false, cssCodeSplit: false, assetsDir: 'assets' }, iles:config define: { 'import.meta.env.DISPOSE_ISLANDS': true }, iles:config optimizeDeps: { include: [Array], exclude: [Array] }, iles:config base: '/' iles:config }, iles:config vue: { iles:config reactivityTransform: true, iles:config template: { compilerOptions: [Object] } iles:config }, iles:config extendFrontmatter: [AsyncFunction (anonymous)], iles:config extendRoute: [AsyncFunction (anonymous)], iles:config extendRoutes: [AsyncFunction (anonymous)], iles:config markdown: { iles:config jsxRuntime: 'automatic', iles:config jsxImportSource: 'iles', iles:config providerImportSource: 'iles', iles:config rehypePlugins: [ [Array] ], iles:config remarkPlugins: [ [Array], [Array], [Array], [Array] ], iles:config recmaPlugins: [ [Function: recmaVueResolveComponents] ] iles:config }, iles:config components: { iles:config dts: true, iles:config extensions: [ 'vue', 'jsx', 'tsx', 'js', 'ts', 'mdx', 'svelte' ], iles:config include: [ /\.vue$/, /\.vue\?vue/, /\.mdx?/ ], iles:config resolvers: [ [Function: IlesComponentResolver], [Function (anonymous)] ], iles:config transformer: 'vue3' iles:config } iles:config } +0ms ```

Screenshots 📷

grafik

johannschopplich commented 2 years ago

OT: I hope one day you might enable GitHub sponsorship, because I'd really like to sponsor your work. The code, your extensive discussion answers… All of that I appreciate a lot.

ElMassimo commented 2 years ago

Hi Johann! Thanks for reporting!

Because it seems to be related with resolving tsconfig.json, the error does not happen in the docs and playground examples in this repo, which prevented me from spotting this problem before releasing a new version.

ElMassimo commented 2 years ago

Released the fix in iles@0.7.30. Thanks!