Movatterモバイル変換


[0]ホーム

URL:


Skip to content
Important
Security Advisory: React2Shell & two new vulnerabilities
Find out more

urlImports

This feature is currently experimental and subject to change, it's not recommended for production. Try it out and share your feedback onGitHub.
Last updated June 16, 2025

URL imports are an experimental feature that allows you to import modules directly from external servers (instead of from the local disk).

Warning: Only use domains that you trust to download and execute on your machine. Please exercise discretion, and caution until the feature is flagged as stable.

To opt-in, add the allowed URL prefixes insidenext.config.js:

next.config.js
module.exports= {  experimental: {    urlImports: ['https://example.com/assets/','https://cdn.skypack.dev'],  },}

Then, you can import modules directly from URLs:

import { a, b, c }from'https://example.com/assets/some/module.js'

URL Imports can be used everywhere normal package imports can be used.

Security Model

This feature is being designed withsecurity as the top priority. To start, we added an experimental flag forcing you to explicitly allow the domains you accept URL imports from. We're working to take this further by limiting URL imports to execute in the browser sandbox using theEdge Runtime.

Lockfile

When using URL imports, Next.js will create anext.lock directory containing a lockfile and fetched assets.This directorymust be committed to Git, not ignored by.gitignore.

  • When runningnext dev, Next.js will download and add all newly discovered URL Imports to your lockfile.
  • When runningnext build, Next.js will use only the lockfile to build the application for production.

Typically, no network requests are needed and any outdated lockfile will cause the build to fail.One exception is resources that respond withCache-Control: no-cache.These resources will have ano-cache entry in the lockfile and will always be fetched from the network on each build.

Examples

Skypack

import confettifrom'https://cdn.skypack.dev/canvas-confetti'import { useEffect }from'react'exportdefault ()=> {useEffect(()=> {confetti()  })return <p>Hello</p>}

Static Image Imports

import Imagefrom'next/image'import logofrom'https://example.com/assets/logo.png'exportdefault ()=> (  <div>    <Imagesrc={logo}placeholder="blur" />  </div>)

URLs in CSS

.className {background:url('https://example.com/assets/hero.jpg');}

Asset Imports

constlogo=newURL('https://example.com/assets/file.txt',import.meta.url)console.log(logo.pathname)// prints "/_next/static/media/file.a9727b5d.txt"

Was this helpful?

supported.

[8]ページ先頭

©2009-2025 Movatter.jp