Images with optimization work now!
As you may have noticed, I finally got optimized images working!
In a previous post, I was having a difficult time working with 
next-optimzed-images, with respect to paths.The problems that I had were both a little dumb (on my part), and quite confusing.
All off their docs tell us to just do something like: 
<img src={require('./images/my-image.jpg')} />I had assumed 
./images/  was the one located in /public/images, because that's where all these blog post images were coming from, as the NextJS docs had suggested. So I could not understand why I was getting Cannot find module.. errors. Turns out a) 
src="{string path}" vs src=require({string path}) are obviously different. And b) the ./images path is actually relative to the JS file requiring it. So on that note, I tried to create the path relative to where 
public was.  But that didn't work.I moved the images folder outside of 
public to the root level and it worked. Ok I've read that Next's pubilc folder was special. Ok fine.Now that I realized these things, I started optimizing my code to account for this pathing.
That's when I found out.. 
require() seems really picky.
require() likes this:const imgFull = require(`../../images/${src}`);It does not like this: 
const IMAGE_PATH = '../../images';
const imgFull = require(`${IMAGE_PATH}/${src}`);It's like the same thing isn't it?!  But nooo, this one keeps resulting in my dreaded
Server Error
Error: Cannot find module '../../images/my-image.png'
...C'mon!
I really doesn't make sense to me. My guess is that it has to do with weird timing of when it reads constants and when it reads 
require()s during build time. 🤷🏻♀️Getting everything else to work so far
So I took some ideas from this article to get me started.
I found out how 
react-markdown could read my markdown blog posts and convert the images to optimizable ones. I'm also using 
react-syntax-highlighter to make these code blocks display!Another thing I learned out of this article was adjusting this 
webpack conifg.  I decided to rename my root image folder post-images.. At the time I felt unreasonably weird about just calling it /images at the root level.  In order to make that work, I also have to edit the next.config.js file like this:// next.config.js
const path = require("path");
webpack(config) {
  config.resolve.alias.images = path.join(__dirname, "post-images");
  return config;
},Ok that's all the learnings for now. 
Until next time!
#nextjs#web development
