Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"astro add auth-astro" result in Cannot find module '\C:\projects\test\node_modules\auth-astro\src\api\[...auth].ts' #31

Open
DR-DinoMight opened this issue Jun 11, 2023 · 6 comments

Comments

@DR-DinoMight
Copy link

DR-DinoMight commented Jun 11, 2023

Using astro add auth-astro to add the auth to my project on Windows using the recommended process and base settings straight out of the box, then I get the following error.

npm run dev

> astro-cactus@2.0.2 dev
> astro dev

 error   Cannot find module '\C:\projects\test\node_modules\auth-astro\src\api\[...auth].ts'
  Require stack:
  - C:\projects\test\node_modules\astro\dist\core\routing\manifest\create.js
Error: Cannot find module '\C:\projects\test\node_modules\auth-astro\src\api\[...auth].ts'
Require stack:
- C:\projects\test\node_modules\astro\dist\core\routing\manifest\create.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1075:15)
    at Function.resolve (node:internal/modules/cjs/helpers:116:19)
    at injectedRouteToItem (file:///C:/projects/test/node_modules/astro/dist/core/routing/manifest/create.js:123:29)
    at file:///C:/projects/test/node_modules/astro/dist/core/routing/manifest/create.js:272:18
    at Array.sort (<anonymous>)
    at createRouteManifest (file:///C:/projects/test/node_modules/astro/dist/core/routing/manifest/create.js:269:56)
    at configureServer (file:///C:/projects/test/node_modules/astro/dist/vite-plugin-astro-server/plugin.js:18:22)
    at _createServer (file:///C:/projects/test/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:63461:30)
    at async createContainer (file:///C:/projects/test/node_modules/astro/dist/core/dev/container.js:49:22)

I presume it's the initial \ as if I follow the path it does exist.

I've tried to do some digging to figure out the root cause but I have been unable to get to figure it out.

My Package.json

{
  "name": "astro-cactus",
  "version": "2.0.2",
  "private": false,
  "type": "module",
  "scripts": {
  	"setup": "npx vite-node --config setup.vite.config.js setup.ts",
  	"dev": "astro dev",
  	"start": "astro dev",
  	"sync": "astro sync",
  	"build": "prisma generate && astro build",
  	"preview": "astro preview",
  	"format": "prettier -w ./src ./src/**/*.astro"
  },
  "devDependencies": {
  	"@astrojs/image": "0.13.0",
  	"@astrojs/mdx": "^0.15.1",
  	"@astrojs/sitemap": "^1.0.0",
  	"@astrojs/tailwind": "3.0.0",
  	"@import-meta-env/unplugin": "^0.4.7",
  	"@tailwindcss/aspect-ratio": "^0.4.2",
  	"@tailwindcss/line-clamp": "^0.4.2",
  	"@tailwindcss/typography": "^0.5.8",
  	"@types/eslint": "^8.4.10",
  	"@types/prettier": "^2.7.2",
  	"@types/sharp": "^0.31.1",
  	"@typescript-eslint/eslint-plugin": "^5.48.0",
  	"@typescript-eslint/parser": "^5.48.0",
  	"astro-eslint-parser": "^0.11.0",
  	"autoprefixer": "^10.4.13",
  	"eslint": "^8.32.0",
  	"eslint-config-prettier": "^8.6.0",
  	"eslint-import-resolver-typescript": "^3.5.2",
  	"eslint-plugin-astro": "^0.23.0",
  	"eslint-plugin-import": "^2.26.0",
  	"eslint-plugin-jsx-a11y": "^6.7.1",
  	"eslint-plugin-prettier": "^4.2.1",
  	"nodemailer": "^6.9.3",
  	"postcss": "^8.4.21",
  	"postcss-html": "^1.5.0",
  	"prettier": "^2.8.3",
  	"prettier-plugin-astro": "0.8.0",
  	"prettier-plugin-tailwindcss": "^0.2.2",
  	"stylelint": "^14.16.1",
  	"stylelint-config-prettier": "^9.0.4",
  	"stylelint-config-standard": "^29.0.0",
  	"tailwindcss": "^3.2.4",
  	"typescript": "^4.9.4"
  },
  "dependencies": {
  	"@astrojs/netlify": "^2.1.2",
  	"@astrojs/prefetch": "^0.1.1",
  	"@astrojs/react": "^2.0.2",
  	"@astrojs/rss": "^2.0.0",
  	"@auth/core": "^0.5.1",
  	"@netlify/planetscale": "^1.0.0",
  	"@planetscale/database": "^1.6.0",
  	"@prisma/client": "^4.15.0",
  	"@resvg/resvg-js": "^2.4.1",
  	"@types/jsonwebtoken": "^9.0.2",
  	"@types/react": "^18.0.27",
  	"@types/react-dom": "^18.0.10",
  	"@types/spotify-api": "^0.0.20",
  	"astro": "^2.6.3",
  	"auth-astro": "^3.0.1",
  	"dotenv": "^16.0.3",
  	"emoji-unicode-map": "^1.1.11",
  	"jsdom": "^22.0.0",
  	"jsonwebtoken": "^9.0.0",
  	"node-fetch": "^3.3.1",
  	"prisma": "^4.15.0",
  	"react": "^18.2.0",
  	"react-dom": "^18.2.0",
  	"reflect-metadata": "^0.1.13",
  	"satori": "0.1.2",
  	"satori-html": "^0.3.2",
  	"sharp": "^0.31.3",
  	"swr": "^2.0.3"
  }
}

Please let me know any other information you'd require and I'll get them to you asap

@nowaythatworked
Copy link
Owner

Hi, could you also provide the your Astro config please? If you have the auth config in a seperate file please also send this :)

@DR-DinoMight
Copy link
Author

Sure thing here's the astro config

import { defineConfig } from "astro/config";
import mdx from "@astrojs/mdx";
import tailwind from "@astrojs/tailwind";
import image from "@astrojs/image";
import sitemap from "@astrojs/sitemap";
import prefetch from "@astrojs/prefetch";

import react from "@astrojs/react";

// https://astro.build/config
import netlify from "@astrojs/netlify/functions";

// https://astro.build/config;
import auth from "auth-astro"

// https://astro.build/config
export default defineConfig({
  site: "https://deloughry.co.uk",
  markdown: {
    shikiConfig: {
      theme: "poimandres",
      wrap: false
    }
  },
  output: "server",
  integrations: [mdx({}), tailwind({
    config: {
      applyBaseStyles: false
    }
  }), image({
    serviceEntryPoint: "@astrojs/image/sharp"
  }),
  sitemap(),
  prefetch(),
  react(),
  auth(),
  ],
  vite: {
    optimizeDeps: {
      exclude: ["@resvg/resvg-js"]
    }
  },
  adapter: netlify()
});

and here's the auth config

import CredentialsProvider from '@auth/core/providers/credentials'

export default {
  providers: [
    CredentialsProvider({
      async authorize(credentials) {
        const authResponse = await fetch("/api/protected/auth", {
          method: "POST",
          headers: {
            "Content-Type": "application/json",
          },
          body: JSON.stringify(credentials),
        })

        if (!authResponse.ok) {
          return null
        }

        const user = await authResponse.json()

        return user
      },
    }),
  ],
}

@nowaythatworked
Copy link
Owner

Is your config named 'auth.config.ts' or something else? If it's something else you need to define the path in the auth. Integration with the parameter 'configFile'

@DR-DinoMight
Copy link
Author

That was it!

Oh my I'm sorry! 😅 But thank you so much for the help, I had misread the readme! and named it [...auth].ts

If it's okay with yourself I may tweak the ReadMe a little bit and submit a PR just to clear the process up a little.

@nowaythatworked
Copy link
Owner

I'm glad I could help 😄
Yes please do so, I highly appreciate the community feedback :)

@DR-DinoMight
Copy link
Author

Sorry, I think I was too eager to close this.

After closing, I decided to test the authentication since I assumed it was working fine as I could launch the server. However, I encountered some issues when trying to get the login components to work. I kept getting a 404 error on the CSRF call.

Thinking that I might have made a mistake during the setup, I started fresh and followed the tutorial from otterlord . But I ended up encountering the same error mentioned at the beginning of the ticket. I suppose I must have confused the system, which is why the error was hidden initially.

The strange thing is that when I boot the project in something like Codespaces or GitPod and run it, it works fine. Even more peculiar, when I checked out TheOtterlord's astro-auth-example on my Windows machine, it also worked. So, I'm not sure if it's something to do with the combination of versions/packages I have or if there's another factor at play.

When I have some free time, I'll try starting a fresh project, but for now, I would like to reopen the ticket.

@DR-DinoMight DR-DinoMight reopened this Jun 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants