kiliman / remix-flat-routes

Remix package to define routes using the flat-routes convention
MIT License
722 stars 25 forks source link

TypeError: flatRoutes is not a function #137

Closed AnthoniG closed 1 month ago

AnthoniG commented 1 month ago

I am getting an error trying to run a brand new Remix installation with the flat-routes Remix Version 2.12.0

npx create-remix@latest
npm i -D remix-flat-routes

Here is my vite.config.ts Copied the routes part from Kent's epicweb starter

import { vitePlugin as remix } from "@remix-run/dev";
import { defineConfig } from "vite";
import tsconfigPaths from "vite-tsconfig-paths";

export default defineConfig({
  plugins: [
    remix({
      future: {
        v3_fetcherPersist: true,
        v3_relativeSplatPath: true,
        v3_throwAbortReason: true,
      },
      routes: async (defineRoutes) => {
        return flatRoutes('routes', defineRoutes, {
          ignoredRouteFiles: [
            '.*',
            '**/*.css',
            '**/*.test.{js,jsx,ts,tsx}',
            '**/__*.*',
            // This is for server-side utilities you want to colocate
            // next to your routes without making an additional
            // directory. If you need a route that includes "server" or
            // "client" in the filename, use the escape brackets like:
            // my-route.[server].tsx
            '**/*.server.*',
            '**/*.client.*',
          ],
        })
      },
    }),
    tsconfigPaths(),
  ],
});

Then run npm run dev and you will get the error as well. Not sure what I am doing wrong?

Clearly something because it works when use epicweb starter (but it's too bloated for my needs), and clearly other people are using it.

So what is the secret ?

EDIT: Can not get the vite.config.ts text inside the code blocks, even though wrapped it inside back-ticks

kiliman commented 1 month ago

You need to import the function in your vite.config.ts

import { flatRoutes } from "remix-flat-routes";
AnthoniG commented 1 month ago

I've tried that and it still won't work for me. I obviously missed it out of my posting above but I assure you it is there in my vite config

Anything else you can think of please?

kiliman commented 1 month ago

Do you have a repo I can look at?

You can also try deleting node_modules and run npm install again.

AnthoniG commented 1 month ago

I will upload the repo and post a link here. Will try the node_modules trick first

AnthoniG commented 1 month ago

The node_modules trick worked........ Wonder what was causing it to do that. It's not like there's anything else installed.

Anyway, thanks for your help, much appreciated :smile: