Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

importly

chase-moskal382ISC0.2.3TypeScript support: included

importly generates import maps

importmap, importmaps, import-map, import-maps, es-modules, esm, modules, loader, generator, impotmap-generator, import-map-generator

readme

📦📡 importly — import map generator

importly is a command-line utility that generates import maps.

so your apps can load es module packages without a bundler.

works nicely with es-module-shims.


🛸 importly basic usage

npx importly < package-lock.json > importmap.json

--host=node_modules
specify where the import map points to.
where the dependencies will be loaded from.

  • --host=node_modules (default) — point to your node_modules directory
  • --host=unpkg — point to the unpkg cdn
  • --host=jsdelivr — point to the jsdelivr cdn

--dev
include your package's devDependencies.


--lookup=node_modules
tell importly where to seek information about packages.
it needs to inspect each package json.

  • --lookup=node_modules (default) — look in your local node_modules directory
  • --lookup=unpkg — query the unpkg cdn
  • --lookup=jsdelivr — query the jsdelivr cdn

--root=/
the url prefix that leads to your node_modules directory.
this affects where the importmap is pointing to.
only applies when --host=node_modules.

  • --root=/ (default) — find node_modules at your server root
  • --root="" — find node_modules in the current directory
  • --root=/my/special/path/ — find node_modules at /my/special/path/node_modules

--semver=exact
the semver prefix to use on the import map versions.
only applies when pointing to a cloud cdn.

  • --semver=exact or --semver="" (default) no prefix, use pinned versions
  • --semver=major or --semver=^ pin major version, with caret prefix
  • --semver=minor or --semver=~ pin minor version, with tilde prefix

--mini
minify importmap output.
eliminates whitespace.


🌠 the more you know, about importly

you don't have to use a package-lock.json

  • a package.json will work.
  • actually, any json that has dependencies will work.
  • however, the package-lock.json is better because it includes subdependencies (and they're scoped, which means your dependencies can use different versions of a single subdependency)

scoped subdependencies only work when

  • you're using a package-lock.json
  • and you're using --host=node_modules

works offline when

  • you're using --host=node_modules
  • and you're using --lookup=node_modules

🍻 importly is open source

  • ask any questions in the issues or discussions tab
  • fix that bug, send me those pull requests
  • show me some love with your sweet github stars

changelog

v0.2.1

  • updated all dependencies, and ran npm audit fix.

v0.2.0

breaking

  • removed jspm integration, see ticket #30

v0.1.0-dev.4

breaking

  • replace --production with the opposite flag --dev

v0.1.0-dev.1

complete rewrite of importly.

breaking cli changes:

  • importly now performs offline lookups in your node_modules directory by default
    • if this breaks your app because you don't have a node_modules directory, you might want to set --lookup=unpkg and --host=unpkg
  • --lock has been replaced by --semver. see the readme about how it works
  • --verbose has been removed

new features:

  • importly now works offline by default
  • importly now recommends using package-lock.json instead of package.json, but both will work
    • when you use package-lock.json in conjunction with --host=node_modules, you will get scoped subdependencies
  • added flags (see readme for details)
    • --production
    • --root
    • --semver
    • --mini