Use AI-powered codemod studio and automate undifferentiated tasks for yourself, colleagues or the community.
This automation dangerously migrates the usages of the Image
component from the next/legacy/image
module to the next/image
module.
Next.js version higher or equal to 13.4
Codemod CLI:
Codemod VS Code extension:
This codemod dangerously migrates the usages of the Image
component from the next/legacy/image
module to the next/image
module. This is achieved by adding inline styles and removing unused props.
Please note this codemod is experimental and only covers static usage (such as <Image src={img} layout="responsive" />
) but not dynamic usage (such as <Image {...props} />
).
Functionality:
layout
prop and adds style
objectFit
prop and adds style
objectPosition
prop and adds style
lazyBoundary
proplazyRoot
proploader
to "custom", removes path
, and sets loaderFile
to a new file.import Image from 'next/image';
import img from '../img.png';
function Page() {
return <Image src={img} />;
}
import Image from 'next/image';
import img from '../img.png';
const css = { maxWidth: '100%', height: 'auto' };
function Page() {
return <Image src={img} style={css} />;
}
import Image from 'next/image';
import img from '../img.png';
function Page() {
return <Image src={img} layout="responsive" />;
}
import Image from 'next/image';
import img from '../img.png';
const css = { width: '100%', height: 'auto' };
function Page() {
return <Image src={img} sizes="100vw" style={css} />;
}
import Image from 'next/image';
import img from '../img.png';
function Page() {
return <Image src={img} layout="fill" />;
}
import Image from 'next/image';
import img from '../img.png';
function Page() {
return <Image src={img} sizes="100vw" fill />;
}
import Image from 'next/image';
import img from '../img.png';
function Page() {
return <Image src={img} layout="fixed" />;
}
import Image from 'next/image';
import img from '../img.png';
function Page() {
return <Image src={img} />;
}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.