2
Module not found: Can't resolve 'components/layout's Codes\nextjs-blog\pages\posts'
> 1 | import Layout from 'components/layout'
  2 | import Link from 'next/link'
  3 | import Head from 'next/head'

Ok so this is the error message I'm getting what's going anyone have an idea

I have my components folder under nextjs-blog and the js file that gives the error is under posts

I didn't give much info because I'm new to Next js and don't know what anyone would need

it doesn't work if I do

import Layout from '../components/layout'

Desktop/Marti's Codes/nextjs-blog <- this is the path to basic nextjs folder I've changed almost nothing to the folder in code and files

I have added components folder in the basic folder and in components I have two files : layout.js layout.module.js

then in pages I have posts folder and in there first-post.js which is the file importing the layout files from components

2
  • 1
    What about import Layout from '../../components/layout'? That's seems like the right relative path from what you described. Commented Jan 6, 2021 at 14:11
  • I was pretty sure I tried '../../components/layout' but it seems to work thanks Commented Jan 6, 2021 at 14:26

2 Answers 2

3

It should be

import Layout from '../../components/layout'

Thanks to juliomalves for the answer

Sign up to request clarification or add additional context in comments.

Comments

2

You need to use relative path to import components i.e. ../components/layout.

To use absolute imports like components/layout, we setup aliases like below in jsconfig.json.

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/components/*": ["components/*"]
    }
  }
}

and use like this

import Layout from '@/components/layout' 

Refer: https://nextjs.org/docs/advanced-features/module-path-aliases

2 Comments

Ok the example I was using at the start showed me to use it like that but it did no difference
can you share the folder location of the component and your pages folder?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.