Нет, это еще не оговорено в спецификации HTML¹ (и я подозреваю, что никогда не будет ²).(Если бы это было так, вам все равно понадобилось бы type="module"
в вашем первом теге скрипта.) Не существует спецификатора модуля , который бы указывал элемент скрипта на странице HTML.На данный момент единственными спецификаторами модуля являются URL для файлов JavaScript. Подробности в спецификации .
Вместо этого вы, вероятно, захотите что-то вроде этого:
<script type="module">
import { setList } from "./test.js";
setList(['a', 'b', 'c']);
</script>
... где test.js
экспортирует именованный экспорт, который позволяет вам сообщитьэто какой список использовать.
(или, конечно, это может быть экспорт по умолчанию.)
Встроенные script type="module"
теги могут import
, но пока они могут использовать export
,ничто не может использовать экспорт, который они создают, потому что у них нет полезного спецификатора модуля.
¹ Это спецификация HTML, потому что форма и семантика спецификаторов модуля оставлены на хостсреда по спецификации JavaScript (подробности здесь ).Все, что спецификация JavaScript говорит о них, это то, что они являются строковыми литералами.
² Это, конечно, может быть, например, с использованием идентификаторов фрагментов.Но благодаря мультиплексированию HTTP / 2, делающему загрузку дискретных ресурсов настолько быстрым по сравнению с HTTP / 1.1 (и особенно против HTTP / 1.0), стимул сделать все, что содержится в одном ресурсе, теперь значительно ниже, чем это было несколько лет назад.