В нашей общей модульной системе операторы импорта модулей сопоставляются с конкретными файлами (версиями) через среду выполнения или связанные инструменты сборки. Пользователю нужно только написать спецификатор модуля (обычно имя пакета) непосредственно в операторе, и модуль может быть обработан автоматически.Node.jsimport

const dayjs = require('dayjs') // CommonJS

import dayjs from 'dayjs'; // webpack

Поскольку мы уже знакомы с этим способом импорта пакетов из , мы должны сначала пройти этап сборки, чтобы убедиться, что код, написанный таким образом, может работать в браузере.npm

Import maps Это решает эту проблему, автоматически сопоставляя спецификаторы модулей (имена пакетов) с их относительными или абсолютными путями. Это позволяет нам использовать краткий синтаксис импорта модулей без использования инструментов сборки.

Мы можем указать a по метке в. HTML<script type="importmap">Import maps

<script type="importmap">
{
  "imports": {
    "dayjs": "https://cdn.skypack.dev/[email protected]",
  }
}
</script>

Затем мы можем использовать спецификацию внутри тега для импорта модуля:<script type="module">ES Module

<script type="module">
  import dayjs from 'dayjs';

  console.log(dayjs("2023-04-01").format("YYYY-MM-DD"));
</script>

С выпуском движок также поддерживается. Safari 16.4WebKitImport Mpas.

На данный момент поддерживаются все три браузерных движка.Import MpasBlink、Gecko、WebKit

Когда он был впервые запущен, я уже подробно представил его в своей предыдущей статье, и вы можете прочитать его, если вам интересно:Import Maps

Как элегантно реализовать импорт модулей без инструментов сборки?





Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.